我有一个 xUnit.net 测试,如下所示:
static class MyTestClass
{
[Fact]
static void MyTestMethod()
{
}
}
VS 2012的xUnit插件表示:
未找到要运行的测试。
TestDriven.net运行良好,但提到了一些关于特设:
1通过,0失败,0跳过(请参阅“任务列表”),这花费了0.47秒(临时)
TeamCity、xunit.gui.exe
和xunit.console.exe
和Visual Studio也找不到TestMethod
(我已经安装了xunit.runner.visualstudio
,VS看到了一些测试。)
什么原因?
从 http://xunit.github.io/docs/getting-started-desktop.html#run-tests-visualstudio:
如果你在发现或运行测试时遇到问题,则可能是 Visual Studio 中运行程序缓存损坏的受害者。若要清除此缓存,请关闭 Visual Studio 的所有实例,然后删除文件夹 %TEMP%\可视工作室测试探索者扩展。还要确保你的项目仅针对单个版本的 Visual Studio 运行器 NuGet 包(“运行者”)进行链接。
这个答案适用于VS 2013,但步骤与VS 2012基本相同。这适用于通过ReSharper的单元测试功能运行。
> < li>
安装Visual Studio 2013的xUnit.net运行html" target="_blank">程序(以管理员身份运行Visual Studio时要小心,否则以非管理员身份运行IDE时测试可能无法运行):
一种。在Visual Studio 2013中,转到工具-
b.搜索 visual Studio 2012 和 2013 的 xUnit.net 运行者
c。然后下载(安装)它。如果从VS 2012升级到VS 2013,建议卸载这个,然后重新安装。
d.重新启动Visual Studio。
如果安装了ReSharper,请安装xUnit。net测试运行器插件:
(注意:自 ReSharper 2016.1 起,续航支持内置于 ReSharper 中,这意味着不再需要 xunit 插件。
一种。在Visual Studio 2013中,导航:Resharper-
b.在左侧,选择在线。
c. 搜索“xunit.net”。选择“xUnit.net 测试支持”。单击“安装”。
d.重新启动Visual Studio 2013。
“清洁”解决方案
一个。在 IDE 的“解决方案资源管理器”中,右键单击该解决方案,然后选择“清理”。
b.重新编译。
c.现在,当右键单击一个< code>[Fact]属性时,选择Resharper的“运行单元测试”(与默认的“运行测试”相对)
使用XUnit运行故障排除:
>
如果使用XUnit运行[Fact]测试的问题仍然存在,则可能需要手动从以下任何/所有文件夹中删除xUnit包(查看xunit DLL的内容,如果找到,则删除xUnit文件夹):
>
C:\Program Files(x86)\Microsoft Visual Studio 12.0\Common 7\IDE\扩展\
< code>C:\Users\
至于ReSharper,尝试卸载并重新安装xunitcontrib库(xUnit.net测试支持)。我注意到有一次卸载时,一些错误消息闪过。我一度抓取了一个屏幕截图,它列出了:
要解决此问题,请删除<code>C:\Users\
太长别读您的测试类必须是public
(但您的测试方法可以是私有
和/或静态
)
出于效率的考虑,xUnit作者选择不使用< code>BindingFlags。非公共的,当在运行器中搜索测试类时(MSIL元数据表对< code > private (/< code > internal )类的索引程度不同,因此反射所能达到的相对效率有很大的性能差异)。
由于上述原因,您的< code >类是< code >私有的这一事实意味着它不会被拾取。
事实上,测试方法是<code>私有
请注意,Visual Studio xUnit Runner扩展、xunit.console.exe
(和GUI)、xunit
MSBuild任务、Resharper和CodeRush都一致尊重这一点(尽管可以说它们[尤其是后两者]可以做更多的事情来标记测试类(即类[可能间接]包含Fact
派生的注释)何时是私有
)。
原因是测试驱动的。net运行您的测试是TestDriven的作者。net已经付出了巨大的努力使它能够正常工作。它在内部使用一个特殊的测试运行器包装器/垫片(称为临时运行器)来运行测试。请注意,该方法实际上不是通过xUnit运行的。net runner,因此您在测试中设置的任何具有副作用的属性都不会被触发。
值得注意的是,NUnit(我很确定MSTest)确实使用了私有反射[,因此在私有
类中获取测试],这可能就是为什么它以前似乎从来都不是您需要担心的重要事情。
注意:这样做的一个副作用/技巧是,您可以将测试类< code>private作为快速< code >跳过ping测试类[和任何嵌套类]中所有测试的方法。(遗憾的是,在这个星球上,这种被无意使用的案例远远多于有意使用的案例!)
我有一些测试使用内置的,但无法让它们运行。 我使用视觉工作室2012最终。 我有两个项目的解决方案;一个是使用微软的测试。VisualStudio。测试工具。单元测试,在类前,在测试方法前,并参考Microsoft。VisualStudio。质量工具。UnitTestFramework(版本10.0.0.0,运行时版本v2.0.50727)。我曾尝试过dot net framework 3.5、4
问题内容: 我正在尝试打开一个保存在源文件夹本身中的CSV文件名“ logger.csv”。 但是,这一直在给我一个“找不到文件”错误。 问题答案: 如果您现在就使用相对路径,则该文件需要存在于项目根目录中, 而不是 存在于java文件的目录中。 考虑以下层次结构: 不管用。 将 现在 的工作。(注意,该文件与src目录相邻。)
问题内容: 我在asp.net项目的Content文件夹中有一个json文件: …以及访问它的代码: …但是调用代码时什么也没发生;浏览器控制台说:“无法加载资源:服务器响应状态为404(未找到)” 为什么找不到?“波浪号文件名”不是通往文件的正确路径吗? 更新 我还尝试了向后“重击”: …并且得到相同的结果(“ 无法加载资源:服务器以404(未找到)状态进行响应 ”) 更新2 然后,我尝试了这种
我用RESTAPI创建了一个非常基本的Spring Boot项目。我尝试将它连接到我的Angular应用程序,但它出现了一些CORS安全错误,所以我切换到了Postman。我试图用邮递员测试它,但我一直收到一个404未找到邮递员错误。为什么我不能连接到我的后端并发布到测试仪功能? 控制器 主要的 安慰 等效的 cURL 命令 邮递员
问题内容: 这个问题已经在这里有了答案 : 如何在Eclipse Web项目中安装JDBC驱动程序而不面对java.lang.ClassNotFoundexception (13个答案) 3年前关闭。 我正在开发一个Web应用程序,使用:Eclipse IDE(Marse),Java 8,Apache tomcat 8,MySQL。我的用户注册代码如下: 我的代码也是正确的,并且我在Eclipse
尝试将我的java应用程序从Eclipse导出到可运行的jar文件中。(这是一个控制台应用程序) 这是Eclipse中项目目录的外观: 以下是项目的运行配置: 这就是jar创建选项的外观: 最后,这是我得到的错误: 我真的试过了所有的东西,但我很困惑为什么它不运行。主类选择正确,运行配置似乎正确,我尝试了runnable和regular,两者都不起作用。 我尝试过清理、重建,甚至重新制作这个项目,