4

外部サービスと統合するときに使用する単体テストがいくつかあります。これらのサービスは不安定になる可能性があり、制御できないため、日常のビルドから削除する必要があります。

通常の単体テストはゲート チェックインの一部として実行されるため、既に別のアセンブリに統合テストがあります。

ただし、デイリー ビルドの一部として実行したい統合テストがまだ多数あるため、デイリー ビルドからアセンブリを完全に削除することはできません。

[TestClass] 属性を削除しようとしましたが、VS2012 内で正常に動作します。しかし、チェックインして TFS (2010) でテストをビルドして実行すると、以下のエラーが発生しました。

[エラーメッセージ] = UTA004: Test.TestMethod の属性が不正に使用されています。TestMethodAttribute は、TestClass 属性でマークされたクラス内でのみ定義できます。

テスト実行を完全に削除する方法を知っている人はいますか? [Ignore] がうまくいかない場合、私のテスト実行は、無視されたテストに関する警告で雑然とします。

4

1 に答える 1

6

TestCategoryAttributeを使用して統合テストを装飾してみませんか。

たとえば、次のようにテストを作成します。

[TestClass]
public class Tests
{
    [TestMethod]
    public void AtomicTest
    {
        Assert.IsTrue(true);
    }

    [TestMethod, TestCategory("Integration")]
    public void IntegrationTest
    {
        Assert.IsFalse(false);
    }
}

次に、関心のあるビルドのみを実行するように TFS ビルドを構成します。

于 2012-11-27T14:14:56.767 に答える