dot*_*ner 1 c# tdd visual-studio-2010 resharper-6.1
我搜索了这个问题,但找不到答案.
我的测试运行似乎并行运行并导致彼此失败.单独运行时,它们都会通过.我试图在测试中添加线程并让它们睡觉但没有运气.
有没有办法按顺序依次运行这些测试?
我的环境:
Visual Studio 2010 Resharper Jet大脑6.1
Pet*_*hie 11
我建议你进行确定性的单元测试.也就是说,它们不依赖于它们运行的顺序或其他测试在之前或之后运行.不这样做是失败的秘诀.大多数测试跑步者都基于测试方法完全独立的事实.
在调用测试类的方法方面,这一事实本质上是显而易见的.例如,使用MS Test,您可以使用Assembly,Class和Test初始化方法.所有这些都是为每个被调用的TestMethod调用的.例如,使用以下类:
[TestClass()]
public class DivideClassTest
{
[AssemblyInitialize()]
public static void AssemblyInit(TestContext context)
{
Console.WriteLine("Assembly Init");
}
[ClassInitialize()]
public static void ClassInit(TestContext context)
{
Console.WriteLine("ClassInit");
}
[TestInitialize()]
public void Initialize()
{
Console.WriteLine("TestMethodInit");
}
[TestCleanup()]
public void Cleanup()
{
Console.WriteLine("TestMethodCleanup");
}
[ClassCleanup()]
public static void ClassCleanup()
{
Console.WriteLine("ClassCleanup");
}
[AssemblyCleanup()]
public static void AssemblyCleanup()
{
Console.WriteLine("AssemblyCleanup");
}
[TestMethod()]
public void Test1()
{
Console.WriteLine("Test1");
}
[TestMethod()]
public void Test2()
{
Console.WriteLine("Test2");
}
}
Run Code Online (Sandbox Code Playgroud)
你会看到类似的输出
Assembly Init
ClassInit
TestMethodInit
Test1
TestMethodCleanup
TestMethodInit
Test2
TestMethodCleanup
ClassCleanup
AssemblyCleanup
Run Code Online (Sandbox Code Playgroud)
虽然有一个"Test"类,但TestMethod本身被认为是测试."测试"类可以有效地进行许多测试.
| 归档时间: |
|
| 查看次数: |
947 次 |
| 最近记录: |