7

私は Visual Studio 2008 と MBUnit のテストで Resharper 4.5 を使用していますが、ReSharpher を使用してテストを実行すると何かおかしいようです。

横には、各テスト メソッドのクラスの横にアイコンがあり、実行とデバッグのオプションがあります。[実行] を選択すると、単一のテストの結果が表示されます。ただし、テストの実行にかなり時間がかかっていることに気付きました。

Sql Server プロファイラーを実行してコードのステップ実行を開始すると、選択したテストだけでなく、クラス内のすべてのテストが実行されていることに気付きました。実際にすべての単体テストを実行しているときに、1 つの単体テストのみを実行しているように見える理由はありますか?

1 つの結果のみを気にする場合、すべての統合テストが実行されるのを待つのが苦痛になります。これを変更する方法はありますか?

4

5 に答える 5

5

今日これに遭遇したばかりで、このバグの原因に気付いたのではないかと思います。同様の名前のメソッドがありました

    [TestMethod]
    public void TestSomething()

    [TestMethod]
    public void TestSomethingPart2()

TestSomething()runningは両方を実行しますが、 runningは実行TestSomethingPart2()しないことがわかりました。メソッド名が完全に一致する可能性があるメソッドに名前を付けると、テストが実行されると結論付けました。私の2番目のテストの名前をTestPart2Somethingこの問題に変更した後、なくなりました。

于 2010-01-04T17:50:08.023 に答える
5

これは ReSharper 5.1 の問題であることを確認できます。

以下のサンプル コードから実行テスト A を再現するには (すべてのテストが実行されます)。テスト AB を実行します (A 以外はすべて実行されます)。等:

[TestMethod]
public void A()
{
    Console.WriteLine("A");
}

[TestMethod]
public void AB()
{
    Console.WriteLine("AB");
}

[TestMethod]
public void ABC()
{
    Console.WriteLine("ABC");
}

[TestMethod]
public void ABCD()
{
    Console.WriteLine("ABCD");
}

[TestMethod]
public void ABCDE()
{
    Console.WriteLine("ABCDE");
}

これを解決するのに何年もかかりました。リモートデバッガーを開発サーバーに接続していたのですが、予想よりも頻繁に壊れていました...

他の人が言ったように、Contains の代わりに StartsWith を実行しているようです。回避策は、別のテスト メソッド名で始まるテスト メソッド名を持たないようにすることです。

于 2010-10-07T23:18:51.343 に答える
3

これがクリスの投稿の下に表示されることを願っています。

彼が気づいた行動を確認する同様の状況がありました。

[TestMethod()]
public void ArchiveAccountTest()

[TestMethod()]
public void ArchiveAccountTestRestore()

したがって、最初のメソッドを実行すると両方が実行され、2 番目のメソッドを実行すると実行されません。2 番目のメソッドの名前を TestRestore に変更すると、問題は解決しました。

注: Resharper 5.1 を使用しているため、まだ問題があります。

于 2010-07-27T20:24:34.370 に答える
0

エディターで右クリックすると、コンテキスト メニューが表示され、そこからテストを実行およびデバッグできます。テスト メソッド内を右クリックして、その 1 つのテストを実行またはデバッグします。テスト メソッドの外側を右クリックして、現在のファイルに含まれるテスト クラス全体を実行またはデバッグします。

于 2009-07-10T16:22:50.050 に答える
0

Gallio の現在のリリースには、MbUnit (および NUnit) サポートが組み込まれた単体テスト ランナーが含まれています。

Resharper メニューから、単一ユニット テストまたはソリューション内のすべてのテストを実行するオプションがあります。クールなのは、このためのキーボード ショートカットが次のとおりであることです。

  • Alt + R、U、R - 現在のコンテキストからテストを実行します (ある[Test]レベルにいる場合は 1 つのテストを実行し、ある[TestFixture]レベルにある場合はフィクスチャ内ですべて実行します!)
  • Alt + R、U、N - ソリューション内のすべての単体テストを実行します

現在の Gallio をアンインストールしてから、C:\Program Files\Jetbrains\Resharper\plugins\bin を確認し、そこにあるファイルを消去することを強くお勧めします。次に、Gallio を新たにインストールします。

これが完了したら、VS2008 を起動し、Resharper に移動する必要があります。プラグイン メニューで、Gallio プラグインがアクティブであることを確認します。これにより、MbUnit がサポートされます。

于 2009-12-05T12:00:08.690 に答える