.testsettings
経由で単体テストを実行するvstest.console.exe
ファイルの使用方法空のビジュアルスタジオソリューションを作成し、空の単体テストプロジェクトを作成し、Local.testsettings
ファイルをソリューションアイテムとして追加しました。
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
}
}
<?xml version="1.0" encoding="UTF-8"?>
<TestSettings name="Local" id="1109524d-9809-4423-b7fa-fad429ebfd8d" xmlns="http://Microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Description>These are default test settings for a local test run.</Description>
<Deployment enabled="false" />
<Execution hostProcessPlatform="MSIL">
<TestTypeSpecific>
<UnitTestRunConfig testTypeId="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b">
<AssemblyResolution>
<TestDirectory useLoadContext="true" />
</AssemblyResolution>
</UnitTestRunConfig>
</TestTypeSpecific>
<AgentRule name="LocalMachineDefaultRole">
</AgentRule>
</Execution>
<Properties />
</TestSettings>
次のコマンドでテストを実行すると、すべて問題ありません。
>> "[path to vstest]/vstest.console.exe" [path to project]\UnitTestProject1.dll
以下のコマンドはエラーになります。
"[path to vstest]/vstest.console.exe" [path to project]\UnitTestProject1.dll /Settings:[path to settings file]\Local.testsettings
警告:テスト設定ファイルまたはForcedLegacyModeがtrueに設定された実行設定は、MSTest V2 Adapterではサポートされていません。 [パス]\UnitTestProject1.dllにはテストがありません。テストディスカバーとエグゼキューターが登録され、プラットフォームとフレームワークのバージョン設定が適切であることを確認して、再試行してください。
さらに、/ TestAdapterPathコマンドを使用して、テストアダプターへのパスを指定できます。例/ TestAdapterPath:。
そこで、/TestAdapterPath:[project path/bin/Debug]
パラメーターを追加しました。 Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll
は、発見者と実行者とともにここにあります。しかし、テストアダプターの指定に関する最後の文がなくても同じエラーが発生しました。
誰かがこの問題を解決できるかどうか疑問に思っていました。
解決策は、デフォルトでVisual Studioによってユニットテストプロジェクトに追加されるMicrosoft.VisualStudio.QualityTools.UnitTestFramework
の代わりにMicrosoft.VisualStudio.TestPlatform.TestFramework
を使用することです。したがって、NuGet
を介して2つのパッケージを削除できます。 MSTest.TestAdapter
とMSTest.TestFramework
を削除して、Microsoft.VisualStudio.QualityTools.UnitTestFramework.Updated
をインストールする必要があります。これらの手順の後、ユニットテストが検出されます。
また、テストフレームワークに関する以下の有用な記事を読むことができます MSTest V2 。
私は同様の問題を抱えていましたが、次の方法で解決しました:
テスト-> テスト設定に移動します
\..\..projectTestSettings.testsettings
ファイル
テストを再度実行します