ElG*_*ooo 61 resharper unit-testing visual-studio visual-studio-2012
I am currently working on a solution that has currently 32 Unittests. I have been working with the resharper test runner - which works fine. All tests are running, all tests are showing the right test outcome. Now a coworker told me, that the tests are not running on his machine using the Visual Studio test explorer. They are not working either on my machine, so i can exclude some local missing files or something.
The Test Explorer is showing all unit tests, but once clicking on "Run All", all tests are getting greyed out and show no result of the test run:
[TestClass]
attribute declared[TestMethod]
attributeobj
, bin
, Debug
and Release
foldersI'd apprechiate any hints which could cause such a behaviour.
Jos*_*son 91
如果您的项目不是所有AnyCpu,那么您可能还需要检查以下2个设置是否匹配:
[右键单击测试项目] - >属性 - >构建 - >平台目标 - 例如x64
[主菜单] - >测试 - >测试设置 - >默认处理器架构 - > X64
我发现当这些不匹配时,我的测试项目会默默无法运行.
小智 41
我在VS 2017中遇到了同样的问题.在我的情况下,它通过重新启动VS解决了.
mar*_*net 30
我发现在项目中它没有引用Microsoft.VisualStudio.QualityTools.UnitTestFramework程序集。相反,它引用了Microsoft.VisualStudio.TestPlatform.TestFramework和Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions。当我删除这两个引用并添加对Microsoft.VisualStudio.QualityTools.UnitTestFramework程序集的引用时,之前用蓝色感叹号标记的测试突然变为活动状态并开始工作。
Ath*_*ras 28
TLDR:更新测试包,查看输出 -> 测试控制台
我为此挣扎了一天半。所以这就是我为解决它所做的:
由于在 .net 框架更新期间更新了所有包,我从工作项目和不工作项目之间的差异开始。第一个线索是所有 3 个项目都在使用:MSTest.TestAdapter和MSTest.TestFramework
当然,我去了- > 输出控制台- >测试下拉在VS 2019,看着输出。那里没什么用。
解决方案的第一步:将MSTest.TestAdapter和MSTest.TestFramework更新到2.0.0版
解决方案的第二步:现在输出控制台->测试下拉输出开始一个接一个地显示,缺少包和错误的绑定重定向
解决方案的第三步:手动添加缺少的包。对我来说那些是
解决方案的第 4 步:删除/修复了不必要的绑定重定向。
我希望这会帮助别人。
Pie*_*ers 18
如果您使用的是NUnit而不是MSTest,则需要Visual Studio 2012/2013 的NUnit测试适配器扩展.
小智 16
我必须更改异步测试方法以返回Task而不是void。
然后,这些测试处于活动状态,并且可以在Test Explorer中运行。
Jon*_*yan 15
我遇到了这个问题,对我来说,这是由多个具有不同版本的测试项目引起的:
合并项目的 nuget 包,使它们相同为我解决了这个问题。
Blu*_*eft 15
您可以通过打开输出面板(视图--> 输出)并从“显示输出”下拉列表中选择“测试”来查看测试运行器的错误输出
此外,如果您安装了 Resharper,您可以打开一个测试文件并将鼠标悬停在测试旁边的测试圆圈上以获取其他错误信息
单击它会将您带到一个包含更多详细信息的窗口。或者,您可以通过转至 Extensions --> Reshaper --> Windows --> Unit Test Exploration Results 打开该窗口
小智 11
全新安装 VS 2019 后出现相同问题。找到了测试,但未运行并显示“发生意外错误”。通过设置 x64 而不是默认选择的 x86 来修复。
检查测试编写的框架(例如nunit,xunit,VS test等),并确保安装了正确的测试适配器/运行器扩展.
对我来说,缺少NUnit 3测试适配器,我通过查看nunit.framework依赖版本确认了所需的版本号.
就我而言,我有一个async void
方法并替换为async Task
,因此测试按我的预期运行:
[TestMethod]
public async void SendTest(){}
Run Code Online (Sandbox Code Playgroud)
用。。。来代替 :
[TestMethod]
public async Task SendTest(){}
Run Code Online (Sandbox Code Playgroud)
我通过运行带有 Blame 选项的测试 cli 设法找出 VS 2019/2022 跳过某些测试的原因:
vstest.console.exe myproject-test.dll /blame
Run Code Online (Sandbox Code Playgroud)
这将生成一个 xml 文件,其中包含一个带有“Completed=”False”的测试。
就我而言,测试主机进程由于运行该测试时发生内存访问冲突而崩溃。内存访问冲突是由无限递归引起的。您可以右键单击并调试该特定测试。
使用 Visual Studio 2019 版本 16.4.6 和 尝试了许多选项 Microsoft.VisualStudio.TestTools.UnitTesting
,但目前成功运行测试的唯一方法是在控制台中调用下一个命令
dotnet test
Run Code Online (Sandbox Code Playgroud)
在测试资源管理器中发现了测试,但结果是“未运行”。
更新 Visual Studio 没有帮助。
通过为下一个软件包运行最新版本的更新,解决了“没有测试与给定的测试用例过滤器 FullQualifiedName 匹配”的问题:
Microsoft.NET.Test.Sdk
MSTest.TestAdapter
MSTest.TestFramework
Run Code Online (Sandbox Code Playgroud)
小智 6
对我来说,问题是我的ClassInit()
方法没有正确的签名。
特别要注意
[ClassInitialize]
ClassInit() 方法上的属性。
作品:
[ClassInitialize]
public static void ClassInit(TestContext context)
{
}
Run Code Online (Sandbox Code Playgroud)
不工作:
[ClassInitialize]
public void ClassInit(TestContext context)
{
}
Run Code Online (Sandbox Code Playgroud)
或者
[ClassInitialize]
public static void ClassInit()
{
}
Run Code Online (Sandbox Code Playgroud)
或者
[ClassInitialize]
public void ClassInit()
{
}
Run Code Online (Sandbox Code Playgroud)
就我而言,这是因为解决方案中的一个测试项目安装了MSTest.TestFramework和MSTest.TestAdapter nuget软件包,而其他项目则没有。在解决方案中的一个项目中安装了这些软件包之后,显然不需要这些软件包来运行测试。
通过在缺少它们的测试项目上安装这些软件包来解决此问题。
对于 Visual Studio 2019 和针对 .NET 5.0 的测试项目,您还需要安装 xunit.runner.visualstudio。所以,你的包应该像这个例子一样:
归档时间: |
|
查看次数: |
39807 次 |
最近记录: |