Asp.net core .NET Core 1.0的VSTS生成VSTest警告:没有可用的测试

Asp.net core .NET Core 1.0的VSTS生成VSTest警告:没有可用的测试,asp.net-core,azure-devops,.net-core,Asp.net Core,Azure Devops,.net Core,最近,我将所有单元测试从xunit切换到mstest,在本地开发机器上,一切都很好,但当我尝试使用VSTS中的CI构建运行测试时,它无法识别测试dll中的任何测试,声明: “警告:中没有可用的测试 c:\vsts\u work\4\s\test\UnitTests\bin\Release\net452\UnitTests.dll” 我相信我已经准备好了所有重要的project.json位: "testRunner": "mstest", "dependencies": { "d

最近,我将所有单元测试从xunit切换到mstest,在本地开发机器上,一切都很好,但当我尝试使用VSTS中的CI构建运行测试时,它无法识别测试dll中的任何测试,声明:

“警告:中没有可用的测试 c:\vsts\u work\4\s\test\UnitTests\bin\Release\net452\UnitTests.dll”

我相信我已经准备好了所有重要的project.json位:

  "testRunner": "mstest",

  "dependencies": {
    "dotnet-test-mstest": "1.0.1-preview",
    "MSTest.TestFramework": "1.0.1-preview"
  }
请注意,我使用的是一个内部构建代理,但我已经证明我可以使用代理运行时使用的服务帐户登录到该构建代理,并且我可以打开VisualStudio并以这种方式运行测试

此外,虽然可以通过查看上述路径来设计,但值得明确指出的是,我使用的是完整的框架


希望有人已经解决了这个问题。

要在构建过程中运行.NET核心测试,您可以添加一个“命令行”任务来运行“dotnet test”命令,并将“工作文件夹”设置为“project.json”文件所在的路径:

多亏了这一点,我知道了如何使用“Visual Studio测试”操作

answer唯一缺少的是如何使其在VST中工作(answer提供了命令行)。为了让它在VSTS中工作,我将以下字符串放入“testassembly”参数中

**\test\**\project.json
然后将其余的命令行参数放在“其他控制台选项”框中的“高级执行选项”下


希望这能帮助下一个尝试使用visual studio工具的人。

我遇到了类似的问题,当我在visual studio中查看测试时,遇到了“警告:没有可用的测试”问题。 结果表明,当应用程序为64位时,测试试图在x86中运行

我建议转到VisualStudio顶部的测试菜单,然后打开

测试>测试设置>默认处理器体系结构>


如果您有类似的问题,并且其他答案没有帮助,请确保测试在正确的体系结构上。

您是如何配置构建任务来运行测试的?是的,我想我遗漏了一些细节,不是吗。我暗示过,但要清楚,我使用VS工具创建了这个项目,所以我有一个.sln文件,还有几个xproj文件。在本地机器上,我使用测试资源管理器执行单元测试。在我的CI构建中,我使用了“VisualStudio测试”测试运行程序(同样,坚持VisualStudio主题)。感谢您的回复。有两条评论,首先,我有意使用VisualStudio工具,而不是DotnetCLI。不过(第二条评论),我会上钩的。我确实切换到使用dotnet测试,虽然日志显示我所有的测试都通过了,但我没有在VSTS中报告测试结果或代码覆盖率。我会四处看看,看看能找到什么,但如果你或其他人即时知道答案,那就太好了。@wikiwakit你可以添加选项-l trx来输出测试结果,然后将“发布测试结果”任务添加到你的构建定义中。还没有弄清楚如何获得代码覆盖率结果,但它会给你测试结果。
/UseVsixExtensions:true /logger:trx