12

TFS 2012 には、いくつかのビルド定義 (CI、Deployment、および nightly) があります。

私たちの CI ビルドは、ソリューションのすべての (n) ユニット テストを実行しますが、特定のテストを無視するには、CI ビルドを取得する必要があります。

これは、長時間実行される統合テストがいくつかあり、これらは夜間にのみ実行する必要があるためです。

私が試したこと:

  • TestCategoryAttribute(MSTest から)を使用し、テスト ケース フィルター プロパティを設定して、「統合」を除外してみてください。
  • (NUnit から)を使用しCategoryAttribute、テスト ケース フィルター プロパティを設定して、「統合」を除外してみてください。
  • 上記の組み合わせ。

無視する必要があるテストはすべて、名前に IntegrationTests または Integration.Tests という単語が含まれる個別のアセンブリにあります。

ありがとう、
キーロン

4

1 に答える 1

10

単体テストで MSTest の TestCategory 属性と、TFS 2012 のビルド プロセス定義のテスト カテゴリ フィルター設定を組み合わせて使用​​しています。

ここ にある Microsoft MSDN の記事によると、テスト カテゴリ フィルター次のように設定することで、使用するカテゴリを指定できます。

TestCategory=CategoryName

元の投稿によると、次のフィルターを使用する必要があります。

TestCategory!=Integration

この属性でテストを装飾します。

[TestCategory("Integration")] 

ビルド中に無視するすべての単体テストでこれを行います。テスト リストは Visual Studio で非推奨になり、すべてをカテゴリに変換するのに時間がかかりましたが、最終的にはそれだけの価値があります。

それが役立つことを願っています!

于 2012-11-20T04:03:47.117 に答える