并行执行的单元测试C#[TestInitialize]问题



我在C#中执行单元测试-理论上我学会了使用[TestInitialize]来避免冗余代码。回到办公室,我做了这样的东西。

class Tests {
APIContext apicon;
Controller controller;
[TestInitialize]
public void TestInitialize()
{
apicon = new APIContext();
controller = new relevantController(cRep);
controller.Request = new HttpRequestMessage();
controller.Configuration = new HttpConfiguration();
}   

我从一个同事那里得到了一条评论,说测试在Build Server上并行运行。方法TestInitialize()将在每次执行测试之前执行。因此,可以在测试运行时重新初始化字段。

这是真的还是假的?我还读到,当你并行运行测试时,运行者会为每个线程创建一个TestClass的实例,这样在测试运行时就不会触摸字段了?

是的,在执行任何TestMethod之前,都会调用其具有[TestInitialize]属性的正确方法。您可以参考本文来更好地理解[TestInitialize]和[TestSetup]属性

最新更新