testing方法不确定:testing未运行。 错误?

我有一个testing类,下面我已经从testing类发布了一个示例testing

namespace AdminPortal.Tests.Controller_Test.Customer { [TestClass] public class BusinessUnitControllerTests { private IBusinessUnitRepository _mockBusinessUnitRepository; private BusinessUnitController _controller; [TestInitialize] public void TestInitialize() { _mockBusinessUnitRepository = MockRepository.GenerateMock<IBusinessUnitRepository>(); _controller = new BusinessUnitController(_mockBusinessUnitRepository); } [TestCleanup] public void TestCleanup() { _mockBusinessUnitRepository = null; _controller.Dispose(); _controller = null; } #region Index Action Tests [TestMethod] public void Index_Action_Calls_GetAllBusinessUnit() { _mockBusinessUnitRepository.Stub(x => x.GetAllBusinessUnit()); _controller.Index(); _mockBusinessUnitRepository.AssertWasCalled(x=>x.GetAllBusinessUnit()); } } } 

当我运行该项目,我得到以下屏幕 在这里输入图像说明

我检查了参考文献,testing项目对主要项目有参考意义。 任何想法为什么testing没有运行或说他们没有结果?

编辑1:

我在这里看到一个post,并将我的testing设置的默认处理器体系结构更改为X64,但仍不起作用。

以防上述任何一个选项都适用于任何人,我通过在我的App.Config中注意到由于在testing项目中丢失了nuget包而导致了这个错误,从而修复了这个错误的实例。

对我来说,这是相当令人沮丧的,但我至less为我的案子find了解决办法:

如果你的TestMethod是asynchronous的,它不能是无效的。 它必须返回任务。

希望它可以帮助别人:)

我与resharper有同样的问题,我通过更改一个选项来纠正这个错误:

resharper => Options => Tools =>unit testing

我只需要取消选中“正在testing的阴影复制程序集”

这是一个Resharper问题。 在Resharper选项 – >工具 – > MSTEST,我没有选中使用遗产亚军,现在它的工作。

我遇到了这个问题,结果和这个问题一样。 这个答案为我解决了这个问题 。

  1. 取消选中“仅在运行时生成启动项目和依赖关系”(选项 – >项目和解决scheme – >生成并运行)
  2. 在configurationpipe理器中,确保启动项目和testing项目都具有“Build”选项。

第二次我遇到这个问题,这是由于在testing所在的项目的文件path中的&符号。 它与ReSharper的testing运行器正常工作,但不是dotCover的。 从文件path中删除&符号。

这是与dotCover 确认的错误 。

对我而言,只需清理和重build解决scheme就可以解决问题。

在我的情况下,这是一个错误,当我在app.config中复制连接string。我已经把它放在configSections标签!

花了我一段时间才意识到…感谢VS intellisense虽然..或者是resharper?

我有类似的问题。 VS 2010,C#CLR 2 Nunit 2.5.7,从VS的干净的解决scheme帮助解决这个问题

我只是解决了这个问题。 但是,这个线程中的解决scheme都没有工作。 这是我做的…

由于R#没有提供任何细节,所以我决定尝试使用内置的VS2013testing运行器。 它经历了没有任何testing运行的完全相同的行为。 但是,在输出窗口,我终于有一个错误信息:

调用executor'executor:// mstestadapter / v1'时发生exception:未将对象引用设置为对象的实例。

这导致了我的另一个线索在一个解决scheme。 相信我,我从来没有猜到这个问题是什么。

我最近在创build一个NuGet包的时候对AssemblyInfo.cs文件做了一些修改。 其中一个变化包括指定“en”的组合文化值。

我改变了这个:

 [assembly: AssemblyCulture("")] 

对此:

 [assembly: AssemblyCulture("en")]`. 

就是这样! 这是莫名其妙地打破了我的unit testing。 但是,我仍然不明白为什么。 但至less事情正在重新开始。 在我改变了这个改变之后(即把文化设置回“”),我的testing开始再次运行。

希望能帮助别人。

你最近添加了任何DLL依赖项? … 像我这样的

我只是遇到了同样的问题,而且在testing输出窗口或其他地方没有得到任何线索是非常令人愤慨的。

原因是非常愚蠢的:我只是在依赖之前添加一个子项目中的一个额外的外部DLL,主项目应用程序确实构build并在更改后正确运行。 但我的unit testing是在主应用程序的姊妹项目,因此也有依赖于这个DLL被调用的这个已更改的子项目…但是,testing项目的运行时位置不是主应用程序的位置! 因此,更改构build以将缺less的DLL复制到testing运行时目录中解决了问题。

我正在使用VS2013,从ReSharper和Moq的MSpec扩展ReSharper 9.1。 我经历了同样的“不确定”的错误。

事实certificate,我的Moq的一个莫克没有初始化,只宣布。 已经初始化所有的testing再次运行。

在我的情况下,我创build了一个asynchronoustesting方法,返回void 。 返回Task而不是void解决了这个问题。

在我的情况下[Test]方法只是private 。 耻辱

我正在使用VS2010,NUnit 2.6.3(虽然内部ReSharper说它使用2.6.2?),ReSharper 7.7.1和NCrunch 2.5.0.12和运行到相同的“…testing是不确定的…”的东西与NUnit,但NCrunch说一切都很好。 在今天的大部分时间里,NUnit和NCrunch一致同意哪些testing是快乐的,哪些需要重构,然后发生了一些我仍然不明白的事情,而且有一段时间NCrunch说我testing失败了(但是通过testing却显示他们通过),然后决定他们都在工作,NUnit开始抱怨我所有的testing,除了一个相同的消息“..testing是不确定的…”,我再次能够单步通过即使NUnit继续将其performance为“不确定”)。

我尝试了上面的几个build议都无济于事,最后closures了VS2010并重新打开了解决scheme。 瞧,现在我所有的testing都很快乐了,NCrunch&NUnit再次报告了相同的结果。 不幸的是,我不知道是什么改变,导致他们不同步,但closures和重新开放VS2010似乎已经修复它。

也许别人会遇到这个问题,并能够使用这个简单的(如果最终令人不满意,因为你不知道真正的解决scheme是什么)解决scheme。

在我的情况下,我得到了这个错误,因为“释放”模式,unit testing项目的构build只是简单地closures。 切换回“debugging”模式修复它。

ReSharper不能说任何东西,以至于根本找不到UnitTests库,这真是令人惊讶。 严重的是,这是一个耻辱;)

希望它会帮助别人

就我而言,ReSharper在testing窗口中给了我这个额外的例外:

 2017.06.15 12:56:57.621 ERROR Exploration failed with the exception: System.AggregateException: One or more errors occurred. ---> System.Threading.Tasks.TaskCanceledException: A task was canceled. --- End of inner exception stack trace --- at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at JetBrains.ReSharper.UnitTestFramework.Launch.Stages.DiscoveryStage.Run(CancellationToken token) ---> (Inner Exception #0) System.Threading.Tasks.TaskCanceledException: A task was canceled.<--- 

它最终导致提供这个错误的testing项目都没有设置在configurationpipe理器中完全build立。 选中checkbox来构build2个testing项目并为我重新sorting。

在这里输入图像说明

我有完全相同的问题,没有任何帮助。

最终我发现我在单元项目和unit testing项目的命名空间中不匹配。

我的单元项目的命名空间是unit.project,testing项目命名为unit.project.tests,但testing的默认名称空间与单元相同,都是unit.project。

一旦我已经更新命名空间是不同的(每个项目的一个命名空间),一切工作!

对我来说,一个testing造成了这个错误,结果我无意中跳过了testing。 在屏幕的左侧,点击放置中断点,您可能会注意到您的testing设置为跳过(有一个微软图标来表示这一点)。 我启用了testing,错误消失了。

我在VS2013和Resharper9中有同样的错误。 问题是因为我忘了用[testing] :)注释testing方法希望这可以帮助任何人

我有同样的问题。 罪魁祸首是一个外部参考与我的项目构build设置不兼容。 要解决,我右键单击项目 – >属性 – >生成 – >平台目标 – >从任何CPU更改为x86。

我正在使用的特殊* .dll是System.Data.SQLite。 该特定的* .dll被硬编码为32位操作。 “任何CPU”设置试图加载它为64位。

我有完全相同的问题,没有testing在我的testing项目中运行。 发生这种情况时,运行testing时select了错误的configuration。 将其更改回Debug可以解决问题。

调试配置

在我的情况下,我从我的unittestproject引用了2个项目。 两个被引用的项目都使用了一个名字相同的dll,但版本不同。

我没有注意到这在Visual Studio中。 我注意到事件查看器中的错误。

为了解决这个问题,我在unittestproject的app.config中使用了bindingRedirect来修复dll版本。

我的解决scheme

NUnit 3.2.0与Resharper有一些问题 – 降级到2.6.4:

 update-package nunit -version 2.6.4 

在我的情况下,我的testing方法是私人的,我把它改为公开的,它的工作。

由于丢失(而不是损坏)的App.Config文件。 添加新的(添加 – >新build项目 – >应用程序configuration文件)修复它。

我有同样的问题。它与NUnit 3.5和Resharper 9.2之间的兼容性版本有关,因为它是通过从NUnit 3.5降级到2.6.4来解决的。 它为我工作。 祝你好运。

就我而言,在我添加新的项目后,解决scheme中的一些testing项目中的所有testing开始不运行。 在这里使用VS 2017与ReSharper 2017.1.2。

首先,确保你不浪费时间,假设你的问题是ReSharper相关的。 如果使用unit testingfunction(包括unit testing浏览器) ,则很容易假定ReSharper有问题。 在Test菜单下打开Visual Studio的testing浏览器 ,然后点击Run All 。这样做的附加好处是,输出窗口会显示一个错误信息,可能指向正确的方向如果你注意到同一组testing没有运行,那么可以肯定的是,这个问题是用Visual Studio而不是ReSharper。

我最终删除并重新添加了configurationpipe理器中的一个Active解决scheme平台 Any CPU 。 这样做后,保存我的更改并重新打开解决scheme后,所有testing开始再次运行。

我相信解决scheme文件中有一个意外的configuration条目,当我添加新项目并重新创build其中一个平台时,它自行纠正。 我尝试了差异,但很难说出是什么原因导致了这个问题。

对我来说,问题是NUnit / ReSharper 设置XML文件 损坏 (由于意外的电力短缺)。

为了识别错误,我使用这个命令启动了Visual Studio:

 devenv.exe /ReSharper.LogFile C:\temp\resharper.log /ReSharper.LogLevel Verbose 

检查文件显示以下exception:

 09:45:31.894 |W| UnitTestLaunch | System.ApplicationException: Error loading settings file System.ApplicationException: Error loading settings file ---> System.Xml.XmlException: Root element is missing. at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.ParseDocumentContent() at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) at System.Xml.XmlDocument.Load(XmlReader reader) at System.Xml.XmlDocument.Load(String filename) at NUnit.Engine.Internal.SettingsStore.LoadSettings() --- End of inner exception stack trace --- at NUnit.Engine.Internal.SettingsStore.LoadSettings() at NUnit.Engine.Services.SettingsService.StartService() at NUnit.Engine.Services.ServiceManager.StartServices() at NUnit.Engine.TestEngine.Initialize() at NUnit.Engine.TestEngine.GetRunner(TestPackage package) at JetBrains.ReSharper.UnitTestRunner.nUnit30.BuiltInNUnitRunner.<>c__DisplayClass1.<RunTests>b__0() at JetBrains.ReSharper.UnitTestRunner.nUnit30.BuiltInNUnitRunner.WithExtensiveErrorHandling(IRemoteTaskServer server, Action action) 

请注意,这不是testing项目的app.config!

一个快速search ,确定下列文件为罪魁祸首:

 %LOCALAPPDATA%\NUnit\Nunit30Settings.xml 

它存在,但是是空的。 删除它并重新启动Visual Studio解决了这个问题。

(使用Visual Studio Professional 2017 v15.3.5和ReSharper 2017.2.1)。

我正在使用VS2013,Resharper 8.2和NUnit(Runner)2.6.3。 configurationResharper使用通过nuget安装的nunit runner。

尝试使用resharper运行unit testing时,遇到了“Inconclusive:Test was not run”错误。 尝试不同的解决scheme后,我试图启动nunit.exe,它是抛出错误“要运行此应用程序,您首先必须安装以下版本的.NET.Framework:V4.0.30319”

修复我的.net framework 4.5安装后,所有工作再次正常。

如果你正在使用Nunit:

对我来说,是我包括以下DLL:
nunit.core
nunit.framework

但它实际上只应该是: nunit.framework

所以我删除了nunit.core ,一切正常。