クラスごとに1回ではなく、1回だけ実行するコードをどこに配置すればよいですか?この例は、DB接続文字列を初期化するステートメントです。そして、それを一度実行するだけでよく、それを行うためだけに各「TestFixture」クラス内に新しいメソッドを配置したくありません。
[SetUpFixture]
属性を使用すると、同じネームスペースですべてのテストに対してセットアップコードまたはティアダウンコードを1回実行できます。
ここ はSetUpFixture
のドキュメントです。ドキュメントによると:
任意の名前空間外のSetUpFixtureは、アセンブリ全体のSetUpおよびTearDownを提供します。
したがって、すべてのテストでSetUp
とTearDown
が必要な場合は、SetUpFixture
クラスが名前空間にないことを確認してください。
あるいは、「グローバル」テスト変数を定義するために、常に厳密に静的クラスを定義できます。
クラスを作成し(私はConfigを呼び出します)、[SetUpFixture]
属性。 [SetUp]
および[TearDown]
クラスのメソッドは1回実行されます。
[SetUpFixture]
public class Config
{
[SetUp] // [OneTimeSetUp] for NUnit 3.0 and up; see http://bartwullems.blogspot.com/2015/12/upgrading-to-nunit-30-onetimesetup.html
public void SetUp()
{
}
[TearDown] // [OneTimeTearDown] for NUnit 3.0 and up
public void TearDown()
{
}
}
NUnit :
[SetUpFixture]
public class TestLogging
{
[OneTimeSetUp]
public void Setup()
{
DoStuff();
}
}