web-dev-qa-db-ja.com

VSTest:テスト設定ファイルまたはForcedLegacyModeがtrueに設定された実行設定は、MSTest V2アダプターではサポートされていません。利用できるテストはありません

.testsettings経由で単体テストを実行するvstest.console.exeファイルの使用方法空のビジュアルスタジオソリューションを作成し、空の単体テストプロジェクトを作成し、Local.testsettingsファイルをソリューションアイテムとして追加しました。

[TestClass]
public class UnitTest1
{
    [TestMethod]
    public void TestMethod1()
    {

    }
}

enter image description here

<?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は、発見者と実行者とともにここにあります。しかし、テストアダプターの指定に関する最後の文がなくても同じエラーが発生しました。

誰かがこの問題を解決できるかどうか疑問に思っていました。

9
Joseph Katzman

解決策は、デフォルトでVisual Studioによってユニットテストプロジェクトに追加されるMicrosoft.VisualStudio.QualityTools.UnitTestFrameworkの代わりにMicrosoft.VisualStudio.TestPlatform.TestFrameworkを使用することです。したがって、NuGetを介して2つのパッケージを削除できます。 MSTest.TestAdapterMSTest.TestFrameworkを削除して、Microsoft.VisualStudio.QualityTools.UnitTestFramework.Updatedをインストールする必要があります。これらの手順の後、ユニットテストが検出されます。

また、テストフレームワークに関する以下の有用な記事を読むことができます MSTest V2

11
Joseph Katzman

私は同様の問題を抱えていましたが、次の方法で解決しました:

  1. テスト-> テスト設定に移動します

  2. \..\..projectTestSettings.testsettingsファイル

  3. テストを再度実行します

30