8

注:このプロジェクトでは、TestDriven.NET3.0.2749とNUnit2.6.0.12051を使用しています。

TestDriven.NETとNUnitの両方をインストールし、右クリックのコンテキストメニューを使用してTestDriven.NETでテストクラスのすべてのテストを実行できるようにしようとしています。

TestDriven.NETドキュメントから:

コードエディタウィンドウが選択されている場合、実行するテストはカレットの位置によって決定されます。個々のテストは、図2に示すように、テストメソッド内の任意の場所を右クリックし、[テストの実行]を選択することで実行されます。テストフィクスチャ内のすべてのテストは、クラス内(ただしメソッド外)を右クリックして[テストの実行]を選択することで実行されます。名前空間内のすべてのテストは、名前空間内を右クリックして[テストの実行]を選択することで実行されます。

右クリックのコンテキストメニューを使用して特定のテストメソッドを正常に実行でき、NUnit GUIランナーは特定のクラスのすべてのテストを正常に実行しますが、TestDriven.NETがこのタスクに提供するクイックアクセスを使用したいと思います。現像。

キャレットをテストメソッドの外に置くと、次のエラーが発生します。

ターゲットタイプには、既知のテストフレームワークまたは「Main」メソッドからのテストが含まれていません。

更新1:サンプルコードを追加しました。

テストするコードの例:

namespace TDDN.Framework
{
    public class ExampleClass
    {
        public ExampleClass() { }

        public Int32 Add(Int32 x, Int32 y)
        {
            return x + y;
        }

        public Int32 Subtract(Int32 x, Int32 y)
        {
            return x - y;
        }
    }
}

ユニットテスト:

using NUnit.Framework;
using TDDN.Framework;

namespace TDDN.UnitTests
{
    [TestFixture] // Cursor caret placed here results in error above.
    public class ExampleClassTests
    {
        [Test] // Cursor caret placed here works.
        public void Add_SumTwoIntegers_SumReturned()
        {
            ExampleClass exampleClass = new ExampleClass();

            Assert.AreEqual(10, exampleClass.Add(5, 5));
        }

        [Test] // Cursor caret placed here works also.
        public void Subtract_SubtractTwoIntegers_DifferenceReturned()
        {
            ExampleClass exampleClass = new ExampleClass();

            Assert.AreEqual(5, exampleClass.Subtract(10, 5));
        }
    }
}
4

2 に答える 2

16

同じバージョンのTestDriven.NETとNUnit(3.0.2749と2.6.0.12051)を使用しているときに、この正確な問題が発生しました。

問題は、TestDriven.NET3.0がNUnit2.6をサポートしていないため、NUnitの[Test]属性と[TestFixture]属性を認識しないことです。したがって、TestDriven.NETは引き続き個々のテスト機能を実行しますが、アドホックとして実行します(テスト時にPass / Fail / Skipメッセージの最後に表示されます)。

NUnit 2.6を完全にサポートする新しいバージョンのTestDriven.NET(3.3 Beta 2)をインストールすることで、この問題を解決することができました(https://groups.google.com/d/msg/nunit-discuss/pTCDx2_L8jU/を参照)。 TlpULzE36wEJ)これで、フィクスチャ内のすべてのテストを一度に実行でき、テスト出力の最後に表示される(NUnit 2.6.0)を確認できるはずです。

于 2012-07-12T19:07:55.613 に答える
0

キャレットの配置について、まったく同じエラーメッセージと同様の動作がありました。

私はすでに最新バージョンのTestDriven.Netを持っていました。

私の問題は、新しいTestClassにカテゴリが指定されておらず、除外されていたことです([ツール]->[TestDriven.Net]->[一般]->[カテゴリ]->[カテゴリにテストを含める])。

したがって、正しいカテゴリを指定するだけで問題が解決しました。

これは同じエラーメッセージでしたが、問題と解決策が異なります。

于 2013-05-29T12:06:47.380 に答える