gpt4 book ai didi

c# - 如何在自己的进程中执行测试类中的每个测试

转载 作者:行者123 更新时间:2023-11-30 15:16:52 25 4
gpt4 key购买 nike

我们在项目中使用 C#NUnit 3.6.1,我们考虑并行测试执行以减少持续时间。据我所知,可以将 TestFixture 的执行与程序集中类的 Parallelizable 属性并行执行。我们想更进一步,在测试类中并行所有标有 TestTestCase 的测试。

典型的测试类如下所示:

[TestFixture]
public class MyTestClass
{

private MySUT _sut;
private Mock<IDataBase> _mockedDB;

[SetUp]
public void SetUpSUT()
{
_mockedDB = new Mock<IDataBase>();
_sut = new MySUT(_mockedDB.Object);
}

public void TearDownSUT()
{
_mockedDB = null;
_sut = null;
}

[Test]
public void MyFirstTC()
{
//Here do some testing stuff with _sut
}

[Test]
public void MySecondTC()
{
//Here do some testing stuff with _sut again
}
}

如您所见,我们在每个测试中都使用了一些字段。为了更好地分离,我们考虑在自己的进程中执行每个测试。我不知道该怎么做,还是我们必须改变一些不同的东西才能使并行执行成为可能?

提前致谢!

最佳答案

是的,从 NUnit 3.7 开始,您可以在单独的线程(而不是进程)中运行单独的测试。
使用 ParellelScope 参数到 Parallelizable 属性。来自 NUnit documentation :

ParallelScope 枚举
这是一个 [Flags] 枚举,用于指定哪些测试可以并行运行。它适用于出现它的测试和任何从属测试。定义如下:

[Flags]
public enum ParallelScope
{
None, // the test may not be run in parallel with other tests
Self, // the test itself may be run in parallel with other tests
Children, // child tests may be run in parallel with one another
Fixtures // fixtures may be run in parallel with one another
}

关于c# - 如何在自己的进程中执行测试类中的每个测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48321345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com