XUnit实现多个测试类共享一个上下文

1. 场景:

     写测试代码时希望多个测试类都使用相同的测试上下文

2. 实现:

    2.1:建一个共享的上下文,可以包含初始化代码和销毁的代码

 public class DatabaseFixture : IDisposable
    { 
        public DatabaseFixture()
        {
            setUpData();
        }

        public void Dispose()
        {
           cleanData();
        }
    }

  2.2:建一个集成自ICollectionFixture泛型接口的实现类,贴上CollectionDefinition标签,取个唯一的名字

[CollectionDefinition("xx")]
    public class DatabaseCollection : ICollectionFixture<DatabaseFixture>
    {
    }

  2.3:给测试类贴标签Collection,并使用2.2中标签取的名字

  [Collection("xx")]
    public class ClassAUnitTests 

  

3. 注意的点:

             在使用collection definitions这个特性时, 第一部分代码必须和测试类在同一个程序集

4. 文档地址:

https://xunit.github.io/docs/shared-context 

 

posted @ 2020-11-12 15:04  peak.gao  阅读(169)  评论(0)    收藏  举报