我正在使用MSpec进行我的最新项目,总体而言,我对它非常满意。然而,当我的测试在并行运行时,我遇到了一个关于并发的问题,想知道是否有人遇到过这个问题,或者更好的是,是否有解决方案?
MSpec在很大程度上依赖于静态方法和变量来工作。
现在看起来,当我在基类中定义静态变量,并且多个测试类使用它们,并且我并行运行我的测试时,它们共享相同的静态变量,从而干扰彼此。
我同时使用NCrunch和Resharper作为我的测试运行程序,我在两个程序中都遇到了这个问题。
有人熟悉这个问题吗?
我正在使用MSpec进行我的最新项目,总体而言,我对它非常满意。然而,当我的测试在并行运行时,我遇到了一个关于并发的问题,想知道是否有人遇到过这个问题,或者更好的是,是否有解决方案?
MSpec在很大程度上依赖于静态方法和变量来工作。
现在看起来,当我在基类中定义静态变量,并且多个测试类使用它们,并且我并行运行我的测试时,它们共享相同的静态变量,从而干扰彼此。
我同时使用NCrunch和Resharper作为我的测试运行程序,我在两个程序中都遇到了这个问题。
有人熟悉这个问题吗?
此致敬礼,
默认情况下,静态字段不是线程安全的。如果要使它们线程安全,可以使用[ThreadStatic]
属性进行装饰。
请查看MSDN上的ThreadStaticAttribute 类了解更多信息。