Visual Studio 测试总数0 - 0通过,0失败,0跳过,即使在类中有测试之后

2vuwiymt  于 2022-12-30  发布在  其他
关注(0)|答案(8)|浏览(171)

当在Visual Studio中运行单元测试时,我得到了0个总测试- 0个通过,0个失败,0个跳过,即使在类中进行了测试。

de90aj5v

de90aj5v1#

在Nunit中,如果在加载测试设置或执行时出现异常,则会导致上述结果。从Visual Studio菜单中打开debug=〉output并选择Test window,然后查看在运行测试时是否抛出任何异常。在我的案例中,在project1中,我有nunit2(reference),在project2中,我有nunit3,它引用了导致冲突且无法执行的project1。
如果您解决了异常,它应该可以工作

0ve6wy6x

0ve6wy6x2#

检查您的解决方案中是否有运行设置文件,或者是否在VS -〉测试-〉配置运行设置下选择了一个文件。如果选择了该文件,请取消选中它。删除该文件。我已修复此问题。

qcbq4gxm

qcbq4gxm3#

确保类的访问修饰符为public而不是internal。如果为internal,则类中的任何[Fact]都不会在测试资源管理器中注册为测试,也不会运行。

im9ewurl

im9ewurl4#

从nuget包管理器安装Microsoft.NET.Test.Sdk包解决了我的问题。我还安装了xunitxunit.runner.visualstudio包。

pw9qyyiw

pw9qyyiw5#

如果有人还在为此而挣扎,安装“MSTest.TestAdapter”解决了我的问题。

ugmeyewa

ugmeyewa6#

对我来说,一个简单的“清洁解决方案”起作用了。

z5btuh9x

z5btuh9x7#

在我的例子中,问题是不同的。在VS中,单元测试是基于测试类来识别的。在我的例子中,没有类的访问修饰符,这导致了问题。VS无法识别特定类的测试方法。

class ControllerTests
{    
    public Controller _Controller;
   
    [TestMethod()]
}

向类中添加public之后,它运行良好。Publicclass ControllerTests {
公共控制器_控制器;

[TestMethod()]
}
dxxyhpgq

dxxyhpgq8#

对于MSTest用户-如果您有一个用[ClassInitialize]属性标记的方法,请确保它既是public又是static,并且只有一个TestContext类型的参数,否则测试文件将不会运行。

[ClassInitialize]
public static void ClassInitialize(TestContext testContext)
{​​
    // initialization code...
}

相关问题