【发布时间】:2020-12-04 12:31:13
【问题描述】:
我有三个测试项目。所有这些都引用自 Model 项目:
我在 Model 项目中创建了 TestBase 类,并将其用作所有测试类的基类。 继承看起来像这样:
[TestClass]
public class UnitTest1 : TestBase
{
[TestMethod]
public void TestMethod1()
{
}
}
在 TestBase 我有 TestInitialize:
[TestInitialize]
public void Initialize()
{
SingletonClass.Initiate();
}
[TestCleanup]
public void Cleanup()
{
//Do some
}
SingletonClass 是测试中需要的静态类。我需要启动一次,所以我这样做:
public static class SingletonClass
{
public static bool IsInitiated { get; set; }
public static void Initiate()
{
if (!IsInitiated)
{
IsInitiated = true;
//Do some
Thread.Sleep(5000);
}
}
}
当我运行一个项目的测试时它工作正常,但是当我运行所有它时它启动它 3 次(花了 15 秒)。当我运行所有测试时,有没有办法只运行一次?
【问题讨论】:
-
这在很大程度上取决于您的测试运行器实现。运行者可能会为测试项目创建不同的进程,因此每个进程都会进行一次初始化。您可以通过将
--agents=1应用到您对 nunit 的调用来限制进程数。
标签: c# unit-testing mstest