34

特定のテストには、理想的にはすべてのビルドで実行したくない属性があります。私のテストのほとんどは通常の単体テストであり、すべてのビルドでそれらを実行したいと考えています。

では、カテゴリまたはプロジェクトの種類ごとにテストを除外するにはどうすればよいですか?

たとえば、除外したいCodedUItests:

[CodedUITest]
public class SearchViewTests

...または特定のテストを除外しますTestCategory:

[TestMethod]
[TestCategory("Database Integration")]
public void ContactRepositoryGetByIdWithIdExpectCorrectContact()

コード化された UI テストは特に除外したいと考えています。コード化された UI テストは、作業を継続する能力を妨げるためです。他のすべてのテストは、邪魔されることなくバックグラウンドで実行されます。

もともとこの質問は Visual Studio 2012 に関するものだったので、そのバージョン以降で動作するソリューションを希望します。

4

7 に答える 7

7

Visual Studio 2012 Update 1 CTP では、プロジェクトとカテゴリ (特性) によるグループ化のサポートがテスト エクスプローラーに追加されました。 http://blogs.msdn.com/b/visualstudioalm/archive/2012/10/08/visual-studio-2012-update-1-ctp.aspx http://go.microsoft.com/fwlink/?LinkId= 268021

于 2012-10-10T05:59:54.083 に答える
7

私が見つけた唯一の「解決策」(またはより良い回避策)は、「FullName」フィルターを指定することです。基本的に、私は通常、次のようにソリューションを構成します

  • プロジェクトA
  • ProjectA.UnitTests
  • ProjectA.統合テスト

等々。これで、テスト エクスプローラーでフィルターを指定できるFullName: "UnitTests"ようになりました。
(検索名に正規表現を使用できると思っていましたが、サポートされていないようです。)

ここに画像の説明を入力

于 2012-10-03T08:43:37.043 に答える
3

ユニット テキスト エクスプローラーで検索フィルターを使用できます。

単体テスト エクスプローラー

2012 に同梱されている新しい Test Exlorer では、'Test Results'、'FileName' などでテストをグループ化できますが、RTM ビルド グループでは、'TestCategory' による検索はテスト エクスプローラーに表示されません。ただし、コマンドラインと TeamBuild には、VS2012 の TestCategory (TestCaseFilter を使用して VS 2012 RC で選択的な単体テストを実行する) に基づくフィルターがあります。

VS 開発チームのメンバーから、彼らはこの不足している機能の重要性を理解しました。これはバックログにあり、フルトレのビルド/アップデートで利用できるはずです。

次のブログで詳細を説明しています: http://blogs.msdn.com/b/vikramagrawal/archive/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using-testcasefilter.aspx

于 2012-09-25T14:08:25.810 に答える
3

テスト エクスプローラーで適用できるフィルターがあります。Trait:"UnitTest" このフィルターは、他のものを無視して TestCategory("UnitTest") 属性を持つテストのみをピックアップします。

于 2012-12-04T18:10:22.733 に答える
2

パーティーに少し遅れて、ソリューションですべての単体テストを実行するだけで、すべての開発者が破壊的な CodedUI に直面するという同じ問題が発生しました。私の回避策は、CodedUI プロジェクトの AssemblyInitializer に次を追加することです。

    if(!ConfigurationManager.AppSettings["MachinesToRunCodedUI"].Split(',').Contains(Environment.MachineName))
        Assert.Inconclusive("CodedUI Tests are skipped.");

マシンがその MachinesToRunCodedUI リストの一部である場合にのみ、CodedUI テストが実行されます。

于 2016-07-15T13:19:45.690 に答える
0

この記事を見たことがありますか? 方法: テスト カテゴリを使用して自動テストをグループ化して実行する

私はまだ VS 2012 でこれを試していませんが、まだ有効かもしれません。私の知る限り、TFS への参照はありません。したがって、これは通常の VS テスト ランナーを指しているはずです。

于 2012-09-25T14:19:01.563 に答える