Nunit运行每个测试两次。

7

我在使用NUnit运行测试时遇到了问题。我不知道为什么,但每个测试都会运行两次。问题是,在另一台笔记本电脑上,它通常只运行一次。

有人遇到过相同的问题并知道如何处理吗?

7个回答

7
我遇到了同样的问题。在我的情况下,我安装了Visual Studio扩展NuGet软件包中的NUnit测试运行器。看起来它们都在执行测试,导致测试运行两次。
卸载Visual Studio扩展解决了这个问题。

我既有Visual Studio扩展,也有NuGet包。删除NuGet包并不能解决我的问题。我会尝试相反的方法。 - Ricardo França
如果上述方法无法解决您的问题,还可以查看您的控制面板中的“程序和功能”,并从那里卸载Nunit安装。 - Tasos K.
对我来说,我卸载了NuGet包并重新启动了VS。 - curob

2

我曾经遇到类似的问题,使用Visual Studio NUnit3运行器运行测试时,测试只会运行一次,但是在使用NUnit3-Command.exe命令行运行时,测试会运行两次。我花费了很长时间来追踪这个问题。我注意到命令行运行器报告了运行了2个测试,并得出结论这是dll中的一个问题。这可能听起来很疯狂,但是我将所有测试代码复制到一个新类中,删除旧的类,编译后,现在测试在两种情况下都只运行一次。


这对我有用。该项目是.net v4.5,并且以前是MsTest项目(在VS中具有MsTest图标)。我将源代码转移到了一个新的v4.7类库。这就解决了问题。 - nf313743

2
在我的情况下,基类和派生类都有TestFixture属性。从派生类中的所有测试都会运行两次。
通过只在基类上放置属性来修复它。

1

仅供他人参考 - 在安装了Visual Studio Professional 2022中的Fine Code Coverage扩展后,我遇到了同样的问题,卸载它有所帮助。我正在使用specflow + xunit。


1
太好了,这正是我的问题。原来你可以更改一个设置来解决这个问题:工具 > 选项 > Fine Code Coverage > 运行(通用) > RunMsCodeCoverage > ****。请参阅为什么使用MS代码覆盖 - Will Westrop

0
通常情况下,当您多次加载测试容器(.dll)时,问题会出现。
如果您从具有bin和obj文件夹的根文件夹中加载测试容器,则可能会发生这种情况,这是Visual Studio项目的典型设置。
请尝试将测试容器的加载限制在bin文件夹中。

实际上它不起作用。为什么在其他笔记本电脑上它可以正常工作,但在这台电脑上不行呢? - MrPug
你是否在解决方案文件夹中查找dll文件?你也可能正在构建两个不同的配置,例如bin\Release + bin\Debug。 - George Polevoy

0

如果您将*.dll文件放置两次,则测试会被执行两次。

在NUnit.3.10.1和nunit3-console 3.9.0中发现此问题。

例如:

nunit3-console myTestDll.dll --test=MyNameSpace.Test myTestDll.dll** --result=myResult.xml


0

当连续测试意外具有相同的测试参数时,测试的运行也可以被复制。

 [Test, Sequential]
            public void Integr_MController_DeleteGet_ReturnsViewAndModel(
 [Values("Do@london.com", "Do@london.com")] string firstEmail,


 [Values("Zyg@london.com", "Zyg@london.com")] HTTPstring updatedEmail) {test code}

将同一个测试运行两次,并在TestExplorer中显示为同一个测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接