没有检测结果。确保已安装的测试发现程序和执行程序、平台和框架版本设置是适当的,然后再试一次

我正在将我们现有的解决方案升级到。Net 4.6.1,并且无法在服务器构建期间运行我们的单元测试。在本地,它们按预期运行,并将框架版本翻转回。Net 4.5.1使它们在服务器上再次运行。

我得到了以下错误:

没有检测结果。确保已安装的测试发现程序和执行程序、平台和框架版本设置是适当的,然后再试一次。

我用一种更简单的方法重现了这个问题:

  • 使用单个 C # 单元测试项目解决两个测试(一个失败,一个通过)。
  • XAML 构建定义 使用默认模板(TfvcTemplate.12.xaml)
  • 交通意外调查2015最新情况1 使用 VisualStudioEnterprise2015Update1的 XAML 生成服务器 安装(有六个类似的服务器,并且所有服务器都产生相同的结果)
106778 次浏览

这是.Net 4.6已知的问题。

无法在使用 TFS 2015 UPdate1的 XAML TFS Build 中运行.Net 4.6. x 单元测试 来源: < a href = “ https://connect.microsoft.com/VisualStudio/response/Details/2245723”rel = “ nofollow”> https://connect.microsoft.com/visualstudio/feedback/details/2245723

这里有一个类似的问题供你参考: 无法运行 TFS 2015 XAML 构建服务器的.Net 4.6单元测试

这只是概述@Sushil 早些时候提出的解决方案。

这是 TeamFoundationServer2015RTM + 更新1中的一个已知问题,将在更新2 参考文献中修复。

@ Sushil 给你描述了一种变通方法,其中包括添加一个。运行设置文件,强制测试运行程序使用旧版本。Net 框架(请不要通过“添加/编辑测试运行”对话框指定它,因为直接在构建过程编辑器中添加它将被忽略)。

我的构建也没有找到测试。

我使用 VSTS (VisualStudioTeamServices) ,并且有一个配置为在每个构建上刷新 NUGET 包的构建。我正在使用 NUnit,发现运行以下 NUGET 命令(来自 Visual Studio 中的包管理器控制台)将 NUnitTestAdapter 库添加到我的测试项目中,并且检入 packages.config 使测试在我的 VSTS 构建中运行。

Install-Package NUnitTestAdapter

正如 Maurice 在对 NUnit3的评论中提到的那样,使用以下 NUGET 包裹(查找链接上的其他工具)。例如: dotnet CLI 及 Paket CLI)

Install-Package NUnit3TestAdapter

希望这个能帮上忙。

我在 VSTS 遇到过同样的问题。净值4.6.2。如果您在 VSTS 控制台输出中看到了这一点,那么@Sushil 提供的解决方案仍然可以在 VSTS 中工作,并且是必需的。不幸的是,Microsoft 提供的“测试程序集”任务通过了,因此,除非您检查输出并发现实际上没有执行任何测试,否则您甚至不知道存在问题!

VSTS Test Fix

VisualStudio2017再次出现此问题。 很可能是另一个错误,但结果是一样的。

一种似乎有效的解决方案是从受影响的计算机上卸载 MicrosoftVisualStudio2017远程调试器。

就我而言,我不得不:

  1. 将测试项目转换为 netcore 2.0(是 netstandard 2.0)

  2. 添加核桃软件包 xunit.runner.visualstudio

参考文献: Http://www.neekgreen.com/2017/11/20/xunit-no-test-is-available/

我使用 MSTest。对我来说,它是 版本不匹配和缺少另一个依赖包-

1)我的包文件夹只包含 MSTest。TestFramework.1.2.1包。在我的项目文件(。Csproj)目标名称中的引用是 MSTest。没有出现在包文件夹中的 TestAdapter.1.2.0包。我的 packages.config 也引用了 MSTest。TestFramework.1.2.0.

2)所以我安装了 MSTest。来自 nuget 包管理器的 TestAdapter.1.2.0并对齐 MSTest。在项目和包文件中将 TestFramework 版本设置为1.2.0。最后,我加入了微软。VisualStudio.TestPlatform 测试平台。TestFramework 和 Microsoft。VisualStudio.TestPlatform 测试平台。TestFramework.引用中的扩展。

然后一切都很好,希望这能帮到别人。

您可以尝试将测试设置中的 默认处理器结构从 X86更改为 X64。对我来说,这就是问题所在。

如果测试项目的平台目标设置为 x64,就会发生这种情况。

Screenshot of test settings

我在 VS2017和4.6.2测试项目中通过以下步骤修复了这个问题:

  1. 删除对 Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 和扩展的引用
  2. 安装 Microsoft.VisualStudio.QualityTools.UnitTestFramework. 更新的 nuget 包裹

我得到了一个类似的问题,并注意到不知何故一个 app.config文件已被添加到我的测试项目。删除这个配置文件为我修复了它。

吸毒。使用 TFS 2017中的构建管道的 Net Core,我的 Visual Studio Test 步骤在没有实际执行任何测试的情况下通过。必须编辑步骤,“高级执行选项”-> “其他控制台选项”包括:

/framework:".NETCoreApp,Version=v2.0"

(该字段还包含 /platform:x64)

在 VisualStudio2017中,我只是卸载并重新安装 NUnitTestAdapter 或者安装新的包,比如 NUnitTestAdapter。随着框架包和问题消失。

确保您已经安装了“ Microsoft.NET.Test.Sdk”插件。

我得到了这个错误,并能够解决它。

  1. 我使用 VisualStudioProfessional2017
  2. 在 VS 中,我导航到 Tools —— > Extended And Update
  3. 在菜单的顶部,我注意到我的 NUnit 适配器被禁用了
  4. 我点击了[启用]按钮
  5. 我能够在没有错误的情况下启动测试。

我得到这个错误是因为我的 Unit 测试类不是公共的。

例如:

class ClientTests

输出错误:

... bin Debug Tests.dll ] UTA001: 在非公共类 ClientTest 上定义的 TestClass 属性

更正:

public class ClientTests

我在 VS 2017中尝试 nUnit 时也遇到过类似的问题,它不是一个核心项目。 安装 NUnit3TestAdapter修复了这个问题。

我通过为项目重新安装所有测试相关的 NuGet 包来解决这个问题: XunitXunit.runner.vistualstudioMicrosoft.Net.Test.Sdk

  1. 从 NUGET 包安装 Nunit 和 NUnitTestAdapter 的最新版本。
  2. 转到-> 测试-> 测试设置-> 默认处理器架构-> 更改为 X64
  3. 构建解决方案。
  4. 这将解决单元测试中的运行测试和调试器问题,并且它将开始工作。

我也有同样的问题。我正在使用 VisualStudio2017社区版。

enter image description here

我使用这些步骤成功地发现并成功地运行了所有的测试用例:

  • 首先转到扩展和更新,安装 NUnit3测试适配器 你已经有了,只需要启用它

  • 重新启动 VisualStudio2017,它将自动提示为
    安装您的扩展,如果提示说结束任务继续
    安装时,只需点击“结束任务”

  • 在此之后,重新构建您的测试项目,现在所有的测试用例都将是 现在可以开始运行测试用例了

我会把我的解决方案扔到垃圾堆上。在我的例子中,我将一对夫妇的项目添加到现有的解决方案中,同时为他们添加测试项目。我们在用 MSTest。解决方案上启用了以前的 UnitTest.testtings 文件,这导致了兼容性问题。

单击设置文件删除了检查,测试运行成功。

enter image description here

在我的情况下,重新安装 Nunit3适配器,删除临时文件夹,更改架构,没有工作。这是因为守护进程再生器造成的问题。

Add or Remove Programs> Find Resharper > Repair > Install again > Restart VS

这样问题就解决了。

如果返回类型错误,异步测试可能会发生此错误。返回类型应该是 Task,而不是 void。

找到了一个方法! 也许不是最正统的方法,但它确实帮了我一个大忙:

  1. 从 Tools > NuGet Package Manager 更新 MSTest.TestAdapter 和 MSTest.TestAdapterFramework 包到1.4.0。
  2. 清理解决方案并再次运行测试。

我不认为版本有什么特别之处,但是更新它肯定会清除解决方案/项目中任何不好的引用。

在指挥官中添加 TestAdapterPath 之后,它对我很有用:

vstest.console.exe Xom.Gci.Lvf.FileParserInvoker.UnitTests.dll /TestAdapterPath:"C:\****\****\{SolutionFolder}"

在我的案例中,测试被发现,但运行的结果是 ”测试无效..。”和(在)著名的: “确保测试发现者和执行者已注册,平台和框架版本设置是合适的,然后再试一次。”

该错误独立于 Visual Studio (通过 dotnet CLI 工具和几乎完全裸露的单元测试进行测试) ,并且仅在定位时出现。NET 4.7.1. Dotnetcore 应用程序运行良好。

也在运行 Nuint3CLI 的测试 nunit3-console.exe Tests.csproj显示错误:

“要么程序集不包含测试,要么没有找到合适的测试驱动程序。”

错误是因为测试适配器无法在(映射的)网络驱动器或共享上找到,而是由 就地拷贝解决并重新运行。

如果您正在 docker 中使用多阶段构建运行测试,并且找不到测试。 确保你复制所有的文件,不仅仅是像 Dockerfile 部分下面这样的项目文件。

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY ["MainProject/FirstApp.csproj", "MainProject/"]
COPY ["TestProject/*", "TestProject/"]


RUN dotnet restore "TestProject/TestProject.csproj"
RUN dotnet build "TestProject/TestProject.csproj" -c Release
RUN dotnet test "TestProject/TestProject.csproj" -c Release

尝试用 --diag:diag.txt运行 vstest.console.exe并检查输出。对我来说,我的工作目录测试适配器的 DLL 加载失败:

TpTrace 信息: 0:14976,1,2020/03/10,15:34:22.120,57158093583,vstest.console.exe,Assembly blyResolver.OnResolve: Microsoft。VisualStudio.TestPlatform.MSTest.TestAdapter: 加载程序集失败。原因: System.IO.FileLoadException: 无法加载文件或程序集的文件:///C: Directory Microsoft。VisualStudio.TestPlatform.MSTest.Dll’或其依赖项之一。不支持操作。(来自 HRESULT T: 0x80131515的异常)

文件名: ‘ File:///C: Directory Microsoft。VisualStudio.TestPlatform.MSTest.TestAdapter.dll’—— > System。异常: 尝试从网络位置加载程序集,这将导致程序集在。NET 架构。这次释放。NET Framework 默认情况下不启用 CAS 策略,因此此加载可能是危险的。如果此加载不打算用于沙箱程序集,请启用 loadFromRemoteSource 开关。更多信息见 http://go.microsoft.com/fwlink/?linkid=155569。

我通过在 vstest.console.exe.config 中的 <runtime>下添加 <loadFromRemoteSources enabled="true"/>来解决这个问题

我用 MSTest。

我从 Nuget 安装了最新版本的 MSTest.testFramework 并替换了 OOB 删除对 Microsoft. VisualStudio. QualityTools. unitTestFramework.dll 的引用

然后从 neget 安装最新版本的 Microsoft.TestPlatform

它允许我用一个命令运行 test:

".\packages\Microsoft.TestPlatform.16.6.1\tools\net451\Common7\IDE\Extensions\TestPlatform\vstest.console.exe" "UnitTestProject1\bin\Debug\UnitTestProject1.dll" /logger:trx

但我也犯了同样的错误。 错误的根本原因是我没有指定一个解析程序集并查找测试的测试适配器。

解决方案:

  1. 安装一个 nuget 包“ MSTest.TestAdapter”

  2. 在命令的末尾指定测试适配器:

    /TestAdapterPath: “ . package MSTest. TestAdapter.2.1.2 build _ common”

我通过在我的项目(https://www.nuget.org/packages/NUnit3TestAdapter/)中安装 NUnit3TestAdapter NuGet 解决了这个问题。

dotnet add package NUnit3TestAdapter --version 3.17.0

我的 。 csproj文件

<Project Sdk="Microsoft.NET.Sdk">


<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>


<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
<PackageReference Include="NUnit" Version="3.12.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0" />
<PackageReference Include="RestSharp" Version="106.11.7" />
</ItemGroup>


</Project>

这个问题很明显是由具有一系列场景的人发现的,我的答案将包括在 .NET 核心项目上使用构建管道在 Azure DevOps上运行 XUnit测试,但也可能对其他人有所帮助。

  • 确保按照 这个答案从 nuget 安装了 XUnit 测试适配器。
  • 在构建管道的 yaml 中,将 otherConsoleOptions: '/framework:.NETCoreApp,Version=v3.1'添加到 VSTest@2步骤的 inputs(将版本号设置为。NET 核心)。有关更多信息,请参见 这份文件
  • 虽然这不是强制性的,但我还是建议添加 failOnMinTestsNotRun: true,这样如果运行零个测试,构建管道将报告失败。
  • 如果您在此时运行构建,您可能会发现测试正在运行,但是管道随后会给出错误 The library 'hostpolicy.dll' required to execute the application was not found。您可以通过将过滤器从默认的 **\*test*.dll更改为 **\*test.dll(注意已删除的星号)或其他与测试项目的 DLL 相匹配的模式来解决这个问题。原因是 XUnit 将一个名为 testhost.dll的文件放在输出目录中,如 这个 Github 问题中所解释的。

如果您使用的是不使用 yaml 的旧管道,那么应该可以使用相同的选项。这个答案介绍了如何添加框架,我假设还有一个选项“如果没有运行最少数量的测试,则会导致任务失败”或类似的选项。

我刚经历过这个问题,看起来可能有很多原因。 在我的例子中,我尝试了一些代码,由于这个原因,我重命名了项目,删除了它。.再次添加它... 突然,我的单个测试停止工作,测试输出窗口显示出这个错误: ”没有检测结果。确保已安装的测试发现程序和执行程序、平台和框架版本设置是适当的,然后再试一次 Debug 输出显示了与平台相关的错误: ”下面的 dll 与当前的设置不匹配,这些设置是. netFramework、版本4.5和平台 X86

使用 VS2019 v 16.8.0 基于.NET Framework 4.8的测试项目 配置为调试/任意 CPU

在尝试了一系列方法之后,解决办法是

  • 关闭 VisualStudio
  • 重命名保存解决方案的文件夹
  • 打开 VS 并加载解决方案。尝试运行测试。

这对我有用,希望对你也有用。

我安装了 nunit3adapter软件包,它在我的测试日志中起作用了:
-->(NUnit3TestExecutor discovered 6 of 6 NUnit test cases using Current Discovery mode, Non-Explicit run)

在 net6.0 targetFramework 中,我将这些包添加到. csproj-file:

<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.10.0" />
<PackageReference Include="MSTest.TestAdapter" Version="2.2.5" />
<PackageReference Include="MSTest.TestFramework" Version="2.2.5" />

早期版本可能与 net6.0不兼容。