16

CI ジョブとして一緒に実行する単体テストの新しいスタックをまとめています。mstest.exe の代わりに vstest.console.exe を使用しているのは、主に複数のフレームワークからテストを実行する機能のためですが、現在はいくつかの xUnit dll に焦点を当てています。ジョブは、Jenkins パイプラインの一部として実行されます。

私はいくつかの開発ボックスですべてを正常にテストしましたが、厄介なことに、これまでのところどの CI ビルド ボックスでもテスト検出が機能していません。これは、0.99.8 xUnit テスト アダプター vsix (0.99.7 でもテスト済み) の追加後です。xUnit dll は、xUnit の 2.0.0.2378 ベータ nuget バージョンを使用して 4.5 に対してビルドされています。

私は、可能な限り単純な dll を使用して症状を再現しました。単一のパブリック テスト メソッドを使用して、自分のボックスで正常に動作し、ビルド ボックスでは動作しませんでした。Windows 2012 に VS2012 をインストールし、xUnit テスト アダプターを使用すると、デプロイ環境は非常に簡単です。

vstest exe 構成ファイルを介して TpTrace ログを有効にしましたが、すべて問題ないようです。問題をさらにトラブルシューティングする方法 (おそらく xUnit 検出プロセスのトレース) または問題の回避策を探していると思います。複数のフレームワークを簡単に実行できるように、vstest コンソールの使用を維持したいと思います。

この問題については、xUnit codeplexサイトにも書きました。

私はこのSOの投稿をチェックアウトしましたが、提案された解決策はどれもここでは意味がありません.

4

2 に答える 2

29

vstest.console.exeVS2013 の使用方法と xunitの解決策を見つけるのにかなりの時間がかかるので、ここで私がどのようにしたかを説明する価値があると思います...

最初のステップは、ここで説明されている内容に従って、Visual Studio から xunit テストを実行できるようにするために必要な xunit プロジェクトにプレリリースのxunit.runner.visualstudionuget パッケージをインストールすることです。

vstest.console.exe次に、コマンドを実行するときは、パラメーターを使用する必要があります/TestAdapterPath

コマンド ラインは次のようになります (xunit アダプターへのパスはここでは相対パスであるため、Active Directory に応じて絶対パスに配置することも、適応させることもできます)。

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" c:\path\to\your\assembly.to.test.dll /TestAdapterPath:".\packages\xunit.runner.visualstudio.0.99.9-build1021\build\_common\"

編集: アダプター dll は出力フォルダーにコピーされるため、パス「.」を指定してコマンド ラインを簡略化できます。/TestAdapterPathオプションに:

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" c:\path\to\your\assembly.to.test.dll /TestAdapterPath:"."

詳細については、NUnit、nuget パッケージNUnitTestAdapter、およびコマンドでも動作します。

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" c:\path\to\your\assembly.to.test.dll /TestAdapterPath:"."
于 2015-01-08T16:10:25.037 に答える