問題タブ [vstest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 複数の開発者が 1 つの C# プロジェクトで VSTest を使用するにはどうすればよいですか?
VS2013 で C# を使用していますが、基本的な問題は、単体テストが開発ステーション間またはビルド サーバー間で移植できないことです。VS によって生成された XML ファイルであるテスト ランナーがありますが、絶対パスが含まれています。
もちろん、これは容認できません。また、各開発者が同じファイル システムを使用したり、各開発者とビルド サーバーに固有のテスト ランナー セットを維持したりすることは容認できません (または完全に不可能です)。
MSは何を考えていたのですか?これらのテスト ランナーをワークステーション間で移植できるようにする方法はありますか? おそらくビルドステップとして、テストランナーを生成する適切な方法はありますか?
編集: より明確にする場合、順序付けられたテストには、他のテスト ランナーまたは単体テスト dll への絶対パスである「ストレージ」属性が含まれます。ここでは、注文されたテストがパンとバターです。これを修正する方法はありますか、または合理的な代替品はありますか? C# で順序付けられたテストを記述できるとします。MS テスト フレームワークは初めてです。そのようなファイルの 1 つが次のようになります。
それを機能させる相対パスを指定する手段が見つかりませんでした。
unit-testing - VSTest.Console.exe で WP81 単体テストを実行できない
vstest.console.exeを使用して、コマンド ラインから Windows Phone 8.1 単体テストを実行しようとしています。VS 2013 (Update 4) で新しい Windows Phone 8.1 単体テスト プロジェクトを作成しました。
単体テストは Visual Studio で検出され、正常に実行できます。
次のステップは、目的のファイルAppPackage
を生成したテスト プロジェクトから新しいプロジェクトを作成することです。.appx
次に、次のコマンドを使用して、このファイルに含まれる単体テストを実行しようとしました。
次のようになりTest.runsettings
ます。
このコマンドはエミュレーターを開始しましたが、次のエラーで失敗します。
エラー: パッケージ 'D:\work\WP81UnitTestApp\UnitTestApp1\AppPackages\UnitTestApp1_1.0.0.0_x86_Debug_Test\UnitTestApp1_1.0.0.0_x86_Debug.appx' のインストールが次のエラーで失敗しました: (0xFFFFFFFF) Windows Phone アプリの単体テストを実行するには、アプリWindows Phone 8 以降をターゲットにする必要があります。
何が間違っているのでしょうか?
c# - VSTest.console.exe から生成されたテスト結果 (.trx) の名前を変更できない
コンソール ラインの VSTest.Console.exe から生成されたテスト結果 (.trx) の名前とファイルの場所を設定しようとしていますが、機能していないようです。
以下のコマンドを実行すると、"c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" "MyTest.dll" /UseVsixExtensions:"true" /InIsolation /ロガー:"trx"
テスト結果をデフォルトの場所の下にコピーします。
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\TestResults{ユーザー名}{マシン名}{日時}.trx
テスト結果のこのデフォルトの場所と名前を回避するために、ロガーで出力パスを指定すると、以下のエラーが発生します。
エラー: URI または FriendlyName 'C:\UnitTest\MyResults.trx' のテスト ロガーが見つかりませんでした。
以下は私が使用しているコマンドです、
"c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" "MyTest.dll" /UseVsixExtensions:"true" /InIsolation / Logger:"C: \UnitTest\MyResults.trx"
どこが間違っているのか教えてください。
msbuild - vstest.console.exe が trx ファイルを生成しない、TestResults が空
ビルド サーバーで以下のコマンドを実行しようとしていますが、
空であるがTRXファイルを持たないTestResultsフォルダーを生成します。
更新:コマンド ラインから警告を下回っています。ただし、ローカル マシンでコマンドを実行しても表示されません。テストプロジェクトで何か不足していますか?
警告: C:\UnitTest\MyTests.dll にはテストがありません。インストールされているテスト ディスカバリーとエグゼキューター、プラットフォームとフレームワークのバージョン設定が適切であることを確認してから、もう一度お試しください。**
c# - VSTest 1 種類のテストのみを実行する
一般的な目標
CI の目的で、(コマンドライン経由で) ヘッドレス ソリューション全体ですべてのテストを実行する PowerShell スクリプトを作成しようとしています。個別に実行できる UnitTests と IntegrationTests があります。
ソリューション構造
このソリューションは、Visual Studio 2013 ソリューションです (Professional バージョンを使用)。すべてのプロジェクトには、必要に応じて、テスト用に 1 つまたは 2 つの個別のプロジェクトがあります。1 つのプロジェクトは単体テスト用で、もう 1 つのプロジェクトは統合テスト用です。簡単な命名規則に従います。
- コンポーネント: Namespace.ComponentName
- 単体テスト: Namespace.ComponentName.Test
- Int。test : Namespace.ComponentName.IntegrationTest
テスト ツール
VSTest.Console.exe を使用してテストを実行しています。
現在失敗しているソリューション
または単体テストのみ、または統合テストのみを実行しようとしています。そのため、すべてのテスト dll ファイルをスキャンし、それらをサフィックスでフィルター処理するというアイデアがありました。
単体テストの例:
これは正常に動作するはずです。唯一の問題は、ネストされたサブフォルダーに 40 以上のテスト プロジェクトがあることです。これにより、このスクリプトを実行すると例外が発生します:
メッセージは自明なので、問題は、いくつかの厄介な単純な制限にぶつかっているため、この問題は拡張可能ではないということです。
主な質問
フィルターに基づいてテスト プロジェクトの特定のサブセットのみを実行できる VSTest.Console.exe を使用する別の方法はありますか?
問題に取り組むために別の角度から取り組まなければなりませんか? または、すべてのテスト プロジェクトがソリューション リポジトリのサブフォルダーにある場合、完全なファイル パスではなく、テスト プロジェクト名のみを使用できますか?
重要: 簡単に拡張できるはずなので、新しく作成されたすべてのテスト プロジェクトでこれを testsettings ファイルなどに追加する必要はありません。ソリューション内のすべてのテスト プロジェクトを実行し、ユニット タイプまたは統合タイプであるかどうかをフィルタリングできるようにしたいと考えています。
テスト プロジェクト名のフル パス名を短縮するためにディスクのルートにリポジトリを配置することは、スクリプトが任意のマシンで実行される可能性があるため、柔軟ではありません。