按顺序使用相同的静态对象执行测试

时间:2017-08-16 06:53:49

标签: c# xunit

我的一些测试使用静态类,这使得无法完全隔离地运行它们。

因此,我想知道是否有办法按顺序告诉xunit某些测试(在不同的测试类中)?

NCrunch具有[ExclusivelyUses("TheStaticClass")]属性,我正在寻找类似的东西(这样构建服务器就不会失败)。

1 个答案:

答案 0 :(得分:1)

您可以使用xunit Collection属性。当我有一个不能同时使用的单例类时,我已经使用过它了。同一集合中的测试不会并行运行。请参阅此处https://xunit.github.io/docs/running-tests-in-parallel.html中的“自定义测试集”部分。

[Collection("Our Test Collection #1")]
public class TestClass1
{
    [Fact]
    public void Test1()
    {
        Thread.Sleep(3000);
    }
}

[Collection("Our Test Collection #1")]
public class TestClass2
{
    [Fact]
    public void Test2()
    {
        Thread.Sleep(5000);
    }
}

在运行集合中的所有测试之后,使用自定义集合夹具进行自定义清理也可能是个好主意。 https://xunit.github.io/docs/shared-context.html#collection-fixture