webentwicklung-frage-antwort-db.com.de

VSTest: Eine Testeinstellungsdatei oder eine Ausführungseinstellung mit einem ForcedLegacyMode-Wert von true wird vom MSTest V2-Adapter nicht unterstützt. Es ist kein Test verfügbar

Wie benutzt man .testsettings Datei läuft Unit-Tests über vstest.console.exe? Ich habe eine leere Visual Studio-Lösung erstellt, ein leeres Unit-Test-Projekt erstellt und Local.testsettings Datei als Lösungselement.

[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>

Alles ist in Ordnung, wenn ich meine Tests mit folgendem Befehl durchführe:

>> "[path to vstest]/vstest.console.exe" [path to project]\UnitTestProject1.dll

Der folgende Befehl gibt einen Fehler aus.

"[path to vstest]/vstest.console.exe" [path to project]\UnitTestProject1.dll /Settings:[path to settings file]\Local.testsettings

Warnung: Eine Testeinstellungsdatei oder eine Ausführungseinstellung mit einem ForcedLegacyMode-Wert von true wird vom MSTest V2-Adapter nicht unterstützt. In [Pfad]\UnitTestProject1.dll ist kein Test verfügbar. Stellen Sie sicher, dass Test Discoverer & Executor registriert sind und die Versionseinstellungen für Plattform & Framework korrekt sind, und versuchen Sie es erneut.

Darüber hinaus kann der Pfad zu Testadaptern mit dem Befehl/TestAdapterPath angegeben werden. Beispiel/TestAdapterPath :.

Also habe ich /TestAdapterPath:[project path/bin/Debug] Parameter. Das Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll mit Entdecker und Vollstrecker befindet sich hier. Aber ich habe den gleichen Fehler ohne den letzten Satz über die Angabe des Testadapters erhalten.

Ich habe mich gefragt, ob jemand dieses Problem lösen kann.

9
Joseph Katzman

Die Lösung besteht darin, Microsoft.VisualStudio.QualityTools.UnitTestFramework Anstelle von Microsoft.VisualStudio.TestPlatform.TestFramework Zu verwenden, das Ihrem Komponententestprojekt standardmäßig von Visual Studio hinzugefügt wird. Sie können also zwei Pakete über NuGet entfernen. Sie sollten MSTest.TestAdapter Und MSTest.TestFramework Löschen und Microsoft.VisualStudio.QualityTools.UnitTestFramework.Updated Installieren. Ihre Unit-Tests werden nach diesen Schritten entdeckt.

Lesen Sie auch den folgenden nützlichen Artikel über Test Framework MSTest V2 .

11
Joseph Katzman

Ich hatte das ähnliche Problem und habe es folgendermaßen gelöst:

  1. Gehen Sie zu Test -> Testeinstellungen

  2. Deaktivieren Sie das \..\..projectTestSettings.testsettings Datei

  3. Führen Sie die Tests erneut aus

30