Resharper Unit测试未运行

我正在尝试开始在项目中编写unit testing。 我首先编写了createTest并尝试了它。 这个测试通过,我开始编写我的其他测试。

现在我所有的测试只是说“测试不运行”。 当我尝试一次运行所有测试以及运行单个测试时,都会发生这种情况。

https://github.com/Requinard/OperationOctopus/tree/UnitTest

到目前为止,我发现的是使用NUnit的人。 我们使用默认的微软测试框架,使用resharper运行测试。

[TestMethod] public void CreateTest() { Init.Initialize(); // set up UserModel user = new UserModel(); user.Address = "Testing Street 1"; user.Email = "Testing@test.com"; user.Level = 2; user.Password = "test"; user.RfiDnumber = "00d0wad0aw"; user.Telephonenumber = "0638212327"; user.Username = "testcaseuser"; Assert.IsTrue(user.Create(), "Cannot write user to database"); test_user = user; } [TestMethod] public void ReadTest() { Init.Initialize(); // set up UserModel user = getTestUser(); Assert.AreEqual(user.Email, test_user.Email, "Reading returned an unexpected result"); } [TestMethod] public void AlterTest() { Init.Initialize(); UserModel user = getTestUser(); user.Email = "test@testing.com"; Assert.IsTrue(user.Update(), "Failure during updating"); user.Read(); Assert.AreNotEqual(user.Email, test_user.Email); } [TestMethod] public void DestroyTest() { Init.Initialize(); UserModel user = getTestUser(); Assert.IsTrue(user.Destroy(), "Could not destroy user"); } 

以上测试将使resharper说“测试不运行”

我刚尝试在笔记本电脑上运行测试。 他们的工作没有对代码进行任何更改,测试立即完成。 这让我觉得我正在处理一个错误的配置。

我认为重新启动整个系统可能有点为时过早。 我发现当发生这种情况时,您需要做的就是重新启动Resharper。

我通常从Visual Studio的命令窗口执行此操作,您只需要一个接一个地键入这些命令

 Resharper_Suspend Resharper_Resume 

这通常可以解决我的问题,不需要重新打开解决方案。

如果失败,您可以清除resharper缓存。 可以在此处查看有关如何执行此操作的信息。

这是从VS菜单中如何做到这一点

确保你没有做我正在做的事情并完全忘记解决方案处于发布模式,测试项目设置为仅在调试模式下构建;-)

ReSharper 2017.3.1中存在一个错误,该错误已于2017.3.2修复: https ://blog.jetbrains.com/dotnet/2018/02/01/resharper-ultimate-2017-3-2-bugfix/

您可以使用ReSharper > Help > Check for Updates

您可以通过启用日志来查看是否有相同的错误。 这就是我所拥有的:

 --- EXCEPTION #2/2 [LoggerException] Message = “Passed version string '2.1.101' doesn't look to be a valid .net core sdk version” 

并最终:

 |W| UnitTestLaunch | System.NullReferenceException: Object reference not set to an instance of an object. at JetBrains.ReSharper.UnitTestProvider.nUnit.v30.NUnitServiceProvider.GetRunStrategy(IUnitTestElement element) at JetBrains.ReSharper.UnitTestProvider.nUnit.v30.Elements.NUnitElementBase.GetRunStrategy(IHostProvider hostProvider) at JetBrains.ReSharper.UnitTestFramework.Launch.Stages.BuildStage.CollectProjectsToBuild() at JetBrains.ReSharper.UnitTestFramework.Launch.Stages.BuildStage.Run(CancellationToken token) at JetBrains.ReSharper.UnitTestFramework.Launch.UnitTestLaunch.RunStage(Object stageObject) 

我的项目使用NET471,我在Visual Studio 15.6.27428.2005中运行ReSharper 2017.3.1

这也发生在我身上,并在此找到了原因: http : //www.henrikbrinch.dk/Blog/2012/02/15/Making-Resharper-testrunner-work-in-64bit

这个修复实际上很苛刻,我所做的就是更改配置:VS2015 – > Resharper – >选项 – >unit testing – >默认平台架构 – 强制测试在32位进程中运行

希望对你有帮助

今天发生在我身上,没有上述建议(清除缓存,重新启动VS,暂停/恢复resharper)工作。

但是在错误下的unit testing会话选项卡中我可以看到我有一个TypeLoadException,它允许我查明问题。 在此处输入图像描述

似乎有一个糟糕的配置/某处/。 我重新安装了整个sysetm,然后是VS2013和R#。 现在测试运行良好。