VSTest:MSTest V2适配器不支持testsettings文件或ForcedLegacyMode设置为true的runsettings。没有测试可用

时间:2018-04-10 16:02:22

标签: visual-studio vstest vstest.console.exe

如何通过.testsettings使用vstest.console.exe文件运行单元测试?我创建了空的visual studio解决方案,创建了空单元测试项目,添加了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
  

警告:testsettings文件或带有ForcedLegacyMode的runsettings   MSTest V2 Adapter不支持设置为true。没有测试   可在[path] \ UnitTestProject1.dll中找到。确保测试   发现者&amp;执行人员已注册,平台和框架版本   设置是合适的,然后再试一次。

     

此外,可以使用指定测试适配器的路径   / TestAdapterPath命令。例   / TestAdapterPath:

所以我添加了/TestAdapterPath:[project path/bin/Debug]参数。带有发现者和执行者的Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll就在这里。但是在没有关于指定测试适配器的最后一句话的情况下我得到了相同的错误。

我想知道是否有人可以解决这个问题。

2 个答案:

答案 0 :(得分:18)

我遇到了类似的问题,并且已通过以下方式解决了该问题:

  1. 转到测试-> 测试设置

  2. 取消选中\..\..projectTestSettings.testsettings文件

  3. 再次运行测试

答案 1 :(得分:11)

解决方案是使用Microsoft.VisualStudio.QualityTools.UnitTestFramework代替Microsoft.VisualStudio.TestPlatform.TestFramework,默认情况下,Visual Studio会将其添加到您的单元测试项目中。因此,您可以通过NuGet删除两个包。您应该删除MSTest.TestAdapterMSTest.TestFramework并安装Microsoft.VisualStudio.QualityTools.UnitTestFramework.Updated。在这些步骤之后将发现您的单元测试。

另外,您可以阅读以下有关测试框架MSTest V2的有用文章。