【发布时间】:2014-05-29 23:32:36
【问题描述】:
您好,我很好奇单元测试在 Visual Studio 默认测试包中的工作方式。在一个标有 TestClass 属性的类中,我有三个标有 TestMethod 属性的测试方法。
现在,当我运行所有测试时: 1. 运行时为每个测试方法创建一个新的类实例? 2. 每个方法是否在一个线程中并行运行?
感谢您的帮助。
【问题讨论】:
标签: unit-testing c#-4.0
您好,我很好奇单元测试在 Visual Studio 默认测试包中的工作方式。在一个标有 TestClass 属性的类中,我有三个标有 TestMethod 属性的测试方法。
现在,当我运行所有测试时: 1. 运行时为每个测试方法创建一个新的类实例? 2. 每个方法是否在一个线程中并行运行?
感谢您的帮助。
【问题讨论】:
标签: unit-testing c#-4.0
直接回答您的问题:
为每个包含的TestMethods 创建一个单独的TestClass 实例。
每个测试都可能在自己的线程上执行,从而允许测试并行运行。
此信息可在this MSDN blog post:
在 MSTest 中,每个测试都在单独的线程上实例化,这会导致运行交错。
另外,这就是ClassInitialize 方法是静态的原因:因为TestClass 实例不在测试之间共享,所以测试可以彼此共享状态的唯一方法是通过静态变量。
【讨论】: