あなたの質問を理解できれば、テストに共通の基本クラスを使用できると思います。
public class TestBase{
[SetUp]
public void BaseSetUp(){
// Set up all the data you need for each test
}
[Teardown]
public void BaseTeardown(){
// clean up all the data for each test
}
}
[TestFixture]
public class TestClass : TestBase{
[SetUp]
public void LocalSetUp(){
// Set up all the data you need specifically for this class
}
[Teardown]
public void LocalTeardown(){
// clean up all specific data for this class
}
[Test]
public void MyTest(){
// Test something
}
}
このようにして、すべてのセットアップとティアダウンを共有して、すべてのテストの前に実行できます。これを確認できます (私は記憶からこれを行っています) が、実行順序は次のようになると思います。
- TestBase.BaseSetup()
- TestClass.LocalSetup()
- TestClass.MyTest()
- TestClass.LocalTeardown()
- TestBase.BaseTeardown()
編集:
さて、あなたが求めていることをよりよく理解したので、SetupFixture属性を使用して、データのセットアップとティアダウンが完全なテスト スイートに対して 1 回だけ行われるようにすることができると思います。
したがって、共通の基本クラスの代わりに、次のように別のセットアップ クラスをセットアップします。
[SetupFixture]
public class TestSetup{
[SetUp]
public void CommonSetUp(){
// Set up all the data you need for each test
}
[TearDown]
public void CommonTeardown(){
// clean up all the data for each test
}
}
[TestFixture]
public class TestClass1 {
[SetUp]
public void LocalSetUp(){
// Set up all the data you need specifically for this class
}
[Teardown]
public void LocalTeardown(){
// clean up all specific data for this class
}
[Test]
public void MyTest(){
// Test something
}
[TestFixture]
public class TestClass2 {
[SetUp]
public void LocalSetUp(){
// Set up all the data you need specifically for this class
}
[Teardown]
public void LocalTeardown(){
// clean up all specific data for this class
}
[Test]
public void MyTest(){
// Test something
}
}
次に、操作の順序は次のようになります。
- TestSetup.CommonSetup()
- TestClass1.LocalSetup()
- TestClass1.MyTest()
- TestClass1.LocalTeardown()
- TestClass2.LocalSetup()
- TestClass2.MyTest()
- TestClass2.LocalTeardown()
- TestSetup.CommonTeardown()
注:すべてのテストは同じ名前空間にある必要があります。