Resharper 单元测试未 运行
Resharper Unit Tests not running
我正在尝试开始在项目中编写单元测试。我先写了createTest,试了一下。这个测试通过了,我开始写我的其他测试。
现在我所有的测试都只说 "Test not run"。当我尝试一次 运行 所有测试和 运行 单个测试时都会发生这种情况。
https://github.com/Requinard/OperationOctopus/tree/UnitTest
到目前为止,我所发现的都是使用 NUnit 的人。我们正在使用默认的微软测试框架,resharper 运行ning 测试。
[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说"Test not run"
我刚刚 运行 在笔记本电脑上进行了测试。他们在没有对代码进行任何更改的情况下工作,测试立即完成。这让我觉得我正在处理某个地方的错误配置。
似乎有一个错误的配置/某处/。我重装了整个系统,接着是VS2013和ARE#。现在测试 运行 正常。
我认为重新启动整个系统可能有点为时过早。
我发现发生这种情况时,您需要做的就是重新启动 Resharper。
我通常通过 Visual Studio 中的命令 Window 执行此操作,您只需要一个接一个地键入这些命令
Resharper_Suspend
Resharper_Resume
这通常可以解决我的问题,不需要重新打开解决方案。
如果失败,您可以清除 resharper 缓存。可以查看有关如何执行此操作的信息 here。
这是操作方法from VS menu
我也遇到过这种情况,找到原因在这里:
http://www.henrikbrinch.dk/Blog/2012/02/15/Making-Resharper-testrunner-work-in-64-bit
这个修复其实很苛刻,我所做的就是更改配置:
VS2015 -> Resharper -> 选项 -> 单元测试 -> 默认平台架构 - 在 32 位进程
中强制测试 运行
希望对您有所帮助
确保你没有做我正在做的事情,并且完全忘记解决方案处于发布模式,测试项目设置为仅在调试模式下构建;-)
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,我 运行 ReSharper 2017.3.1 在 Visual Studio 15.6.27428.2005
今天发生在我身上,none 以上建议(清除缓存、重新启动 VS、resharper suspend/resume)奏效了。
但是在“错误”下的“单元测试会话”选项卡中,我可以看到我有一个 TypeLoadException,这使我能够查明问题所在。
我定期 运行 进入这个,因为我在一个有多个分支的项目上工作,并且在不关闭的情况下在它们之间切换 Visual Studio。这偶尔会使 ReSharper 感到困惑,我将不再在某些项目上使用 NUnit 选项。
在使用 ReSharper 2018.2 的 Visual Studio Community 2017 中,我尝试的第一件事是卸载 NUnit 测试 运行ner 不可用的项目。有时这是唯一需要的步骤。
接下来我使用 ReSharper->Options->General->'Clear caches',这需要重启 VS。
然后我再次卸载并重新加载行为不当的项目。
这解决了问题。
我正在尝试开始在项目中编写单元测试。我先写了createTest,试了一下。这个测试通过了,我开始写我的其他测试。
现在我所有的测试都只说 "Test not run"。当我尝试一次 运行 所有测试和 运行 单个测试时都会发生这种情况。
https://github.com/Requinard/OperationOctopus/tree/UnitTest
到目前为止,我所发现的都是使用 NUnit 的人。我们正在使用默认的微软测试框架,resharper 运行ning 测试。
[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说"Test not run"
我刚刚 运行 在笔记本电脑上进行了测试。他们在没有对代码进行任何更改的情况下工作,测试立即完成。这让我觉得我正在处理某个地方的错误配置。
似乎有一个错误的配置/某处/。我重装了整个系统,接着是VS2013和ARE#。现在测试 运行 正常。
我认为重新启动整个系统可能有点为时过早。 我发现发生这种情况时,您需要做的就是重新启动 Resharper。
我通常通过 Visual Studio 中的命令 Window 执行此操作,您只需要一个接一个地键入这些命令
Resharper_Suspend
Resharper_Resume
这通常可以解决我的问题,不需要重新打开解决方案。
如果失败,您可以清除 resharper 缓存。可以查看有关如何执行此操作的信息 here。
这是操作方法from VS menu
我也遇到过这种情况,找到原因在这里: http://www.henrikbrinch.dk/Blog/2012/02/15/Making-Resharper-testrunner-work-in-64-bit
这个修复其实很苛刻,我所做的就是更改配置: VS2015 -> Resharper -> 选项 -> 单元测试 -> 默认平台架构 - 在 32 位进程
中强制测试 运行希望对您有所帮助
确保你没有做我正在做的事情,并且完全忘记解决方案处于发布模式,测试项目设置为仅在调试模式下构建;-)
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,我 运行 ReSharper 2017.3.1 在 Visual Studio 15.6.27428.2005
今天发生在我身上,none 以上建议(清除缓存、重新启动 VS、resharper suspend/resume)奏效了。
但是在“错误”下的“单元测试会话”选项卡中,我可以看到我有一个 TypeLoadException,这使我能够查明问题所在。
我定期 运行 进入这个,因为我在一个有多个分支的项目上工作,并且在不关闭的情况下在它们之间切换 Visual Studio。这偶尔会使 ReSharper 感到困惑,我将不再在某些项目上使用 NUnit 选项。
在使用 ReSharper 2018.2 的 Visual Studio Community 2017 中,我尝试的第一件事是卸载 NUnit 测试 运行ner 不可用的项目。有时这是唯一需要的步骤。
接下来我使用 ReSharper->Options->General->'Clear caches',这需要重启 VS。
然后我再次卸载并重新加载行为不当的项目。
这解决了问题。