我已经安装了适用于VS2012 + 2013的NUnit测试适配器。当我初次安装时,适配器测试正在显示,但是由于某些原因它们今天停止显示。构建,重建,清理,重新启动后,Test Explorer中什么都没有显示。为什么会这样呢?我正在使用VS2013 Ultimate。
我已经安装了适用于VS2012 + 2013的NUnit测试适配器。当我初次安装时,适配器测试正在显示,但是由于某些原因它们今天停止显示。构建,重建,清理,重新启动后,Test Explorer中什么都没有显示。为什么会这样呢?我正在使用VS2013 Ultimate。
Answers:
如果您的测试项目设置为以64位平台为目标,则这些测试将不会显示在NUnit测试适配器中。
如果您使用的是NUnit3 +版本,则可以使用新的测试适配器。
转到“工具->扩展和更新->在线”,搜索“ NUnit3测试适配器”,然后安装。
我的测试程序集是64位的。从Visual Studio 2012顶部的菜单栏中,我能够选择“测试”->“测试设置”->“默认处理器体系结构”->“ X64”。从“构建”菜单中选择“重建解决方案”后,我能够在测试资源管理器中查看所有测试。希望这对将来的其他人有帮助。
检查NUnit版本不匹配。当前可用的NUnit测试适配器仅适用于NUnit 2.6.4及更低版本。要从版本3.x降级NUnit,请转到程序包管理器控制台>更新程序包NUnit-版本2.6.4。
http://jeremybytes.blogspot.co.ke/2015/11/review-of-unit-testing-makes-me-faster.html
这个答案似乎很基本,但起初对我来说并不完全清楚。如果您(重新)构建解决方案,则它仅会构建配置为在其中构建的项目。Build -> Configuration Manager
这是我的问题,我一定是无意中更改了构建配置设置,或者导致我的测试项目无法构建的某些事情(以前是这样)。因此,Test Explorer
窗口正在查看过时的dll。对我来说很明显,这是在做完a之后Clean
,看到我的大部分测试消失了,并且在rebuild
对bin
文件夹的进一步检查显示根本没有构建这些项目之后再也没有回来。
我有一个有效的设置(根据解决方案针对NUnit2和NUnit3,以及2012年至2017年之间的多个版本的Visual Studio),它突然停止工作一天:在任何解决方案或VS版本中均未检测到测试。
就我而言,它有助于删除%localappdata%\Temp\VisualStudioTestExplorerExtensions
。VS重新启动后,一切都像以前一样工作。
如果你正在使用VS 2017年和.NET的核心,如说在这里,你应该添加对测试框架NUnit的3.6.1,在测试跑步NUnit3TestAdapter 3.8.0-α1和测试SDK Microsoft.NET.Test.Sdk 15.0.0。
使用NUnitTestAdapter.WithFramework可以确保NUnit和NUnit适配器的版本之间几乎没有/没有不一致(即“可以正常工作”)
检查您是否已声明[TestFixureSetUp]和[Test]
在测试班
样品:
namespace ClassLibrary1
{
public class SimpleCalculator
{
public Calculator _calculator;
[TestFixtureSetUp]
public void initialize()
{
_calculator = new Calculator();
}
[Test]
public void DivideTest()
{
int a = 10;
int b = 2;
int expectedValue = a/b;
int actualValue = _calculator.Divide(a, b);
Assert.AreEqual(expectedValue, actualValue, "Functionality not working properly!");
}
}
}
我开始了一个新的解决方案,其中包含一个测试项目,并将其与我原来的问题项目进行了比较。由于某种原因,原始文件中包含一个app.config。我从项目中排除了该文件,并看到我的测试重新出现在测试浏览器中。
我也有这个问题,但原因不同。我正在将VS2017与F#4.0一起使用。
首先,Visual Studio中的控制台没有为您提供为什么找不到测试的足够详细的信息。它将无法通过测试加载DLL。因此,请在命令行上使用NUnit3console.exe,因为它可以为您提供更多详细信息。
就我而言,这是因为测试适配器正在寻找F#Core DLL(4.4.1.0)(F#4.1)的较新版本,而我仍在使用4.4.0.0(F#4.0)。所以我只是将其添加到测试项目的app.config中:
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="4.4.0.0" />
</dependentAssembly>
即重定向到早期的F#内核。
我遇到了同样的问题,突然在“测试资源管理器”窗口中没有出现任何测试。我拥有“ NUnit3TestAdapter”的更新版本
经过大量搜索和努力,我发现需要在项目属性中设置以下值:[在解决方案资源管理器窗口中:右键单击Project> Properties]在“构建”选项卡下,设置Platform = x64,然后设置Platform target = x86或任何CPU生成项目,所有测试将出现在“测试资源管理器”窗口中。
重要说明:在输出窗口中看到下一个味精后,我找到了解决方案:
“测试运行将使用为Framework45和平台X86构建的DLL。以下DLL将不属于运行的一部分:AutomationTests.dll是为Framework45和平台X64构建的。”