当测试在 vstest.console.exe 中运行时,为什么 dotnet vstest 返回“没有可用的测试”?

age*_*q15 4 .net c# .net-framework-version visual-studio vstest

我有一个为 .net Framework 4.6 中的测试项目构建的 dll 文件。

当我这样做时测试运行良好vstest.console.exe test.dll,但是当我这样做时dotnet vstest test.dll它说

test.dll 中没有可用的测试。确保测试发现者和执行者已注册,并且平台和框架版本设置合适,然后重试。

我想在 dll 上运行 coverlet,但似乎在我开始dotnet vstest工作之前这不会起作用。

Kir*_*ton 9

我有点能够重现你的问题,尽管就我而言,我无法要么 vstest.console.exe test.dll要么dotnet vstest test.dll工作。他们都只是吐出了同样的错误,即没有可用的测试。

问题重现:

  • 使用NUnit作为测试框架。

使固定:

  1. Nunit3TestAdapter添加对in的引用packages.config
    <?xml version="1.0" encoding="utf-8"?>
    <packages>
      <package id="NUnit" version="3.12.0" targetFramework="net46" />
      <package id="NUnit3TestAdapter" version="3.16.1" targetFramework="net46" developmentDependency="true" />
    </packages>
Run Code Online (Sandbox Code Playgroud)
  1. 重建解决方案。

然后这两个命令都vstest.console.exe test.dlldotnet vstest test.dll预期工作。


如果您使用的测试框架与 NUnit 不同,则应该有相应的适配器来实现相同的目的。

我已经验证这也适用于 MSTest。

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="MSTest.TestAdapter" version="2.1.0" targetFramework="net46" />
  <package id="MSTest.TestFramework" version="2.1.0" targetFramework="net46" />
</packages>
Run Code Online (Sandbox Code Playgroud)