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#。 现在测试运行良好。