我们可以在 CollectionDefinition 中编写代码 class

Can we write code inside CollectionDefinition class

public class MyFirstFixture : IDisposable
{
    public MySecondFixture()
    {
        // Some initialization
    }

    public void Dispose()
    {
        // Some cleanup
    }
}

[CollectionDefinition("MyCollection")]
public class MyCollectionDefinition : ICollectionFixture<MyFirstFixture>
{
    //Can I add code in this section?
}

[Collection("MyCollection")]
public class TestClass1
{
    [Fact]
    public void TestMethod1()
    {
        // Do some testing
    }
}

我在这里定义了 MyFirstFixture 并使用 CollectionFixture 创建了一个集合定义,并且该集合名称正在测试中使用。 我也可以在 CollectionDefinition 部分编写代码吗?只要在测试中提到集合,它就会执行吗?

看看文档就知道了: https://xunit.net/docs/shared-context

有个例子:

[CollectionDefinition("Database collection")]
public class DatabaseCollection : ICollectionFixture<DatabaseFixture>
{
    // This class has no code, and is never created. Its purpose is simply
    // to be the place to apply [CollectionDefinition] and all the
    // ICollectionFixture<> interfaces.
}