VSTest:MSTest V2 适配器不支持 ForcedLegacyMode 设置为 true 的测试设置文件或运行设置。没有可用的测试
VSTest: A testsettings file or a runsettings with a ForcedLegacyMode set to true is not supported with the MSTest V2 Adapter. No test is available
如何通过 vstest.console.exe
使用 .testsettings
文件 运行 宁单元测试?我创建了空的 visual studio 解决方案,创建了空的单元测试项目,添加了 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
Warning : A testsettings file or a runsettings with a ForcedLegacyMode
set to true is not supported with the MSTest V2 Adapter. No test is
available in [path]\UnitTestProject1.dll. Make sure that test
discoverer & executors are registered and platform & framework version
settings are appropriate and try again.
Additionally, path to test adapters can be specified using
/TestAdapterPath command. Example
/TestAdapterPath:.
所以我添加了/TestAdapterPath:[project path/bin/Debug]
参数。发现者和执行者的 Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll
位于此处。但是我得到了同样的错误,没有关于指定测试适配器的最后一句。
我想知道是否有人可以解决这个问题。
解决方案是使用 Microsoft.VisualStudio.QualityTools.UnitTestFramework
而不是 Microsoft.VisualStudio.TestPlatform.TestFramework
,后者默认由 Visual Studio 添加到您的单元测试项目中。所以你可以通过 NuGet
删除两个包。您应该删除 MSTest.TestAdapter
和 MSTest.TestFramework
并安装 Microsoft.VisualStudio.QualityTools.UnitTestFramework.Updated
。您的单元测试将在这些步骤之后被发现。
您还可以阅读以下有关测试框架的有用文章 MSTest V2。
我遇到了类似的问题,我已经通过以下方式解决了:
转到测试 ->
测试设置
取消选中 \..\..projectTestSettings.testsettings
文件
运行 再次测试
如何通过 vstest.console.exe
使用 .testsettings
文件 运行 宁单元测试?我创建了空的 visual studio 解决方案,创建了空的单元测试项目,添加了 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
Warning : A testsettings file or a runsettings with a ForcedLegacyMode set to true is not supported with the MSTest V2 Adapter. No test is available in [path]\UnitTestProject1.dll. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.
Additionally, path to test adapters can be specified using /TestAdapterPath command. Example /TestAdapterPath:.
所以我添加了/TestAdapterPath:[project path/bin/Debug]
参数。发现者和执行者的 Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll
位于此处。但是我得到了同样的错误,没有关于指定测试适配器的最后一句。
我想知道是否有人可以解决这个问题。
解决方案是使用 Microsoft.VisualStudio.QualityTools.UnitTestFramework
而不是 Microsoft.VisualStudio.TestPlatform.TestFramework
,后者默认由 Visual Studio 添加到您的单元测试项目中。所以你可以通过 NuGet
删除两个包。您应该删除 MSTest.TestAdapter
和 MSTest.TestFramework
并安装 Microsoft.VisualStudio.QualityTools.UnitTestFramework.Updated
。您的单元测试将在这些步骤之后被发现。
您还可以阅读以下有关测试框架的有用文章 MSTest V2。
我遇到了类似的问题,我已经通过以下方式解决了:
转到测试 -> 测试设置
取消选中
\..\..projectTestSettings.testsettings
文件运行 再次测试