10

いくつかのテストケースといくつかの通常のテストを含む基本テストクラスがあります。

[TestFixture]
public abstract class TestBase
{
  [TestCase(1)]
  [TestCase(2)]
  [TestCase(3)]
  public void TestA(int value)
  {
    // Perform test
  }

  [Test]
  public void TestB()
  {
    // Perform test
  }
}

これらのテストは、さまざまな方法で環境をセットアップする子クラスから実行されます。子クラスにはセットアップメソッドのみが含まれ、テストは含まれません。

[TestFixture]
public class LocalDatabaseTest : TestBase
{
  [SetUp]
  public void SetUp()
  {
    // Set up environment to use local db
  }
}

ReSharper 6.1.1000.82を使用してLocalDatabaseTestのすべてのテストを実行していますが、通常のテストのみが実行されます。TestCaseを使用したテストでは、結果は得られません。TestBaseクラスのTestAで[すべて実行]を選択すると、すべてのテストケースが実行されます(他の子クラスを含む)。NUnit2.6.2.12296を使用しています。私が間違ったことについて何か考えはありますか?

4

1 に答える 1

7

あなたは何も悪いことをしていません。

NUnit テスト ランナーを介してテスト dll を開くと、すべてのテストが正常に実行されていることがわかります。
(あなたのコードを NUnit 2.6.2 で検証したところです)。

Resharper でパラメータ化されたテストを無視する理由について: Resharper テスト ランナーには、このような動作を引き起こす問題があるようです。
したがって、私の提案は、NUnit を使用してパラメーター化されたテストを実行することです。

ところで、Resharper 7 では、NUnit パラメータ化テストのサポートが向上しています。おそらく、この問題は最新の Resharper バージョンでは発生しません。

于 2013-01-24T21:12:03.823 に答える