私は、テストを実行する前に、SetUp
メソッド([SetUp]
と帰属)を実行する必要はありません。他のテストではSetUp
メソッドを実行する必要があります。NUnitの特定のテストに対してのみSetUpメソッドをスキップしますか?
これを達成するために使用できる属性または属性に基づいていない方法がありますか?
私は、テストを実行する前に、SetUp
メソッド([SetUp]
と帰属)を実行する必要はありません。他のテストではSetUp
メソッドを実行する必要があります。NUnitの特定のテストに対してのみSetUpメソッドをスキップしますか?
これを達成するために使用できる属性または属性に基づいていない方法がありますか?
必要なセットアップのみ(またはセットアップの不足)を持つテスト用の新しいクラスを作成する必要があります。
また、セットアップコードを他のすべてのテストで呼び出されるメソッドにアンファクタリングすることもできますが、この方法はお勧めしません。
私はあなたがそれを行うことができるとは思わない、それは私が可能とは思わないどのテストが実行されようとしているかを知ることを含むだろう。
私はあなたが、基本クラスの主SetUp
を持つことができます異なる[TestFixture]
以内にそれを置くことをお勧めしたい:
[SetUp]
public virtual void SetUp()
{
// Set up things here
}
...そして、それを上書きあなたがSetUp
コードを実行しないテストがあるクラス:
[SetUp]
public override void SetUp()
{
// By not calling base.SetUp() here, the base SetUp will not run
}
あなたの設定でカテゴリリストを確認してください:
public const string SKIP_SETUP = "SkipSetup";
[SetUp]
public void Setup(){
if (!CheckForSkipSetup()){
// Do Setup stuff
}
}
private static bool CheckForSkipSetup() {
ArrayList categories = TestContext.CurrentContext.Test
.Properties["_CATEGORIES"] as ArrayList;
bool skipSetup = categories != null && categories.Contains(SKIP_SETUP);
return skipSetup ;
}
[Test]
[Category(SKIP_SETUP)]
public void SomeTest(){
// your test code
}
正しく動作しません... –
@DebendraDash '_CATEGORIES'は、より新しいバージョンのNUnitでは 'Category'と呼ばれています。これは、図書館の内部に頼っているときに簡単に起こりうるものです。 –
ここでは、あなたが望むものを達成するために提案しているコードです。次のように
[SetUp]
public async Task Dosomething()
{
if (!CheckForSkipSetup())
{
}
}
は、テストケースでこれらを使用します:次のように
private static bool CheckForSkipSetup()
{
var categories = TestContext.CurrentContext.Test?.Properties["Category"];
bool skipSetup = categories != null && categories.Contains("SkipSetup");
return skipSetup;
}
は今の状態を確認してください。
public const string SKIP_SETUP = "SkipSetup";
は今、次のメソッドを追加します
[Test]
[Category(SKIP_SETUP)]
public async Task Mywork()
{
}
ここで私はあなたが欲しいものを達成するために提案するコードです:
public const string SKIP_SETUP = "SkipSetup";
private static bool CheckForSkipSetup()
{
string category = string.Empty;
var categoryKeys = TestContext.CurrentContext.Test.Properties.Keys.ToList();
if (categoryKeys != null && categoryKeys.Any())
category = TestContext.CurrentContext.Test.Properties.Get(categoryKeys[0].ToString()) as string;
bool skipSetup = (!string.IsNullOrEmpty(category) && category.Equals(SKIP_SETUP)) ? true : false;
return skipSetup;
}
[SetUp]
public void Setup()
{
// Your setup code
}
[Test]
public void WithoutSetupTest()
{
// Code without setup
}
[Test]
[Category(SKIP_SETUP)]
public void CodeWithSetupTest()
{
// Code that require setup
}
は、私はこれは私がそれを行うことができますどのように同じクラスになりたい場合は? –