Resharper Unit测试未运行

时间:2015-04-13 19:39:10

标签: c# unit-testing visual-studio-2013 resharper

我试图开始在项目中编写单元测试。我首先编写了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说"测试不运行"

我刚尝试在笔记本电脑上运行测试。他们在不对代码进行任何更改的情况下工作,并立即完成测试。这让我觉得我在某个地方处理错误的配置。

7 个答案:

答案 0 :(得分:38)

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

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

Resharper_Suspend
Resharper_Resume

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

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

这是如何做到的from VS menu

答案 1 :(得分:6)

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

答案 2 :(得分:5)

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

您可以通过enabling logs查看是否有相同的错误。这就是我所拥有的:

--- 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

答案 3 :(得分:4)

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

此修复实际上很苛刻,我所做的是更改配置: VS2015 - > Resharper - >选项 - >单元测试 - >默认平台架构 - 强制测试以32位进程运行

希望这会对你有所帮助

答案 4 :(得分:1)

今天发生在我身上,上述建议(清除缓存,重新启动VS,暂停/恢复重新共享)均无效。

但是,在“错误”下的“单元测试会话”选项卡中,我可以看到我有TypeLoadException,它使我能够查明问题所在。 enter image description here

答案 5 :(得分:0)

我会定期遇到此问题,因为我正在处理具有多个分支的项目,并在不关闭Visual Studio的情况下在它们之间切换。这有时会使ReSharper感到困惑,并且在某些项目中我将不再具有NUnit选项。

在带有ReSharper 2018.2的Visual Studio Community 2017中,我尝试做的第一件事是卸载NUnit测试运行器不可用的项目。有时,这是唯一需要的步骤。

接下来,我使用ReSharper-> Options-> General->“清除缓存”,这需要VS重新启动。

然后,我再次卸载并重新加载行为异常的项目。

这解决了该问题。

答案 6 :(得分:-6)

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