NUnitを使用した単体テストプロジェクトがあります。mspec(machine.specifications)アセンブリを参照に追加すると、ReSharperとTestDriven.Netの両方がNUnitテストの実行を停止し、mspecテストのみを実行します。
NUnitとmspecの両方のテストを共存させ、R#とTD.Netのテストランナーを使用して同じプロジェクトで実行できるようにする方法や設定はありますか?
ReSharper5.0とTestDriven.Net3.0RC2および次のコードを使用してVS2008でこれをテストしました。
using Machine.Specifications;
using NUnit.Framework;
namespace ClassLibrary1
{
[TestFixture]
public class FooTests
{
[Test]
public void Bar()
{
Assert.IsTrue(true);
}
}
public class When_tests_are_run
{
It should_succeed = () => true.ShouldBeTrue();
}
}
ReSharperで説明した動作を再現することはできません。まず、ReSharperは、緑と黄色のガターマークで示されているように、両方のテストクラスを検出します。プロジェクトを右クリックして[単体テストの実行]を選択すると、両方のテストが正常に実行されます。ガターアイコンを介してそれらを個別に実行することも、期待どおりに機能します。
TestDriven.Netに関しては、1つのプロジェクト内で複数のテストフレームワークが使用されるシナリオをサポートしているかどうかはわかりません。プロジェクトで「テストを実行」すると、MSpecコンテキストのみが実行されます。ただし、「テストの実行」でNUnit TestFixture内をクリックすると、NUnitテストが実行されます。
ReSharper で MSpec を有効にしてください。ランナーを(手動またはbatファイルで)「インストール」したとしても、デフォルトではオンになりません。でオンにします
ReSharper メニュー | オプション... | ツール | 単体テスト