public PatientShould(ITestOutputHelper output, LongTimeTaskFixture fixture) { _output = output; _partial = new Patient(); _task = fixture.Task; }
public PatientTest(ITestOutputHelper output, LongTimeTaskFixture fixture) { _output = output; _patient = new Patient(); //这个类加载时间过长,下面每个方法实现时都会走一次构造函数,导致每个方法延迟了2秒,怎么决绝呢? //用IClassFixture<>,这个非常有用,这里提供了两种方式:注入的方式,和标记的方式 //_task = new LongTimeTask(); //这样会导致重复加载 /// 解决上下文类重复加载,导致每个方法都执行了2秒的问题 /// IClassFixture这个可以共享上下文,决绝每个方法都执行2秒 /// 共享上下文的方式(一) _task = fixture.Task; }
public PatientTests2(ITestOutputHelper output, LongTimeFixture fixture) { _output = output; _patient = new Patient(); //统一在构造函数中生成对象 _task = fixture.Task; //共享资源,只创建一次,防止运行每个测试方法调用构造函数重复创建资源。 }
public LongTimeTaskFixture() { Task = new LongTimeTask(); }