gpt4 book ai didi

c# - NUnit 未运行套件测试

转载 作者:可可西里 更新时间:2023-11-01 08:27:46 26 4
gpt4 key购买 nike

我在 NUnit 中创建了一个测试套件,它引用了各种程序集中的几个不同的单元测试装置。

我几乎使用了 NUnit's docs 中的示例代码:

namespace NUnit.Tests
{
using System;
using NUnit.Framework;
using System.Collections;

public class AllTests
{
[Suite]
public static IEnumerable Suite
{
get
{
ArrayList suite = new ArrayList();
suite.Add(new VisionMap.DotNet.Tests.ManagedInteropTest.DotNetUtilsTest());
return suite;
}
}
}
}

我的目标是将几个测试添加到上面的列表中,以便我可以批量运行它们。

但是当我尝试在 NUnit 的 GUI 中加载 DLL 时,我得到了这个: alt text

我做错了什么?

我知道文档说 GUI 不会运行套件,但我也尝试过控制台。谁能告诉我 Suites 有什么用处以及我如何使用它们来实现我的目标?

我使用的是 nunit 2.5.0.9122。

编辑

好吧,没有答案。最后我找到了一个替代解决方案:Categories。我通过给它们适当的类别来对测试装置进行分组,然后我可以批量运行它们的一个子集,同时仍然忽略另一个子集。

仍然很奇怪,这个套件功能似乎完全被破坏了。

最佳答案

这些天来真的不需要套房。如果您只想使用它们来指定运行和不运行哪些测试,则使用类别属性可以更好地实现这一点。这就是您最终所做的,听起来是您问题的最佳解决方案。

但是,为了其他人和将来的引用,您可以使用 Nunit 中的套件。您必须从控制台运行它们,并且只能使用/fixture 选项。例如,要运行您在上面指定的套件,您需要运行(假设您的类被编译成程序集 AllTests.dll):

nunit-console /fixture:AllTests.Suite AllTests.dll

您不会在 GUI 中看到任何运行套件的证据或方法 - 这在文档中有说明。但是,您可以使用上述命令从 GUI 内置的控制台运行它们。


我在一些测试中使用套件,因为我有一些奇怪的用例,有时需要我将参数传递给我的测试方法。我通过创建如下所示的套件来做到这一点。所以它们有一些用途,只是您的情况不需要。

[Suite]
public static IEnumerable MySuite
{
get
{
var suite = new ArrayList{new TestClass1(arg1), TestClass2(arg2)};
return suite;
}
}

关于c# - NUnit 未运行套件测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2919487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com