- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一系列测试,我想在其中使用相同的测试用例数据来进行一系列不同的测试。
例如:
[Test, TestCaseSource("TestData")]
public void Test1(Foo foo)
{
// test 1
}
[Test, TestCaseSource("TestData")]
public void Test2(Foo foo)
{
// test 2
}
private static IEnumerable TestData()
{
TestCaseData data;
data = new TestCaseData(new Foo("aaa"));
yield return data;
data = new TestCaseData(new Foo("bbb"));
yield return data;
}
这会导致一系列测试报告如下:
Namespace.That.Is.Very.Long.TestClass.Test1(Namespace.That.Is.Very.Long.Foo)
Namespace.That.Is.Very.Long.TestClass.Test1(Namespace.That.Is.Very.Long.Foo)
Namespace.That.Is.Very.Long.TestClass.Test2(Namespace.That.Is.Very.Long.Foo)
Namespace.That.Is.Very.Long.TestClass.Test2(Namespace.That.Is.Very.Long.Foo)
...当您不知道“foo”失败的原因时,这并没有多大意义。
如果as suggested in this SO question我这样设置名称:
data = new TestCaseData(new Foo("aaa"));
data.SetName("foo=aaa");
yield return data;
...然后我所有的测试结果如下所示:
foo=aaa
foo=bbb
foo=aaa
foo=bbb
所以我想弄清楚如何获取当前的测试方法名称。那会出现,as described in this other SO question通过 TestContext 完成。
但是,尽管存在 TestContext.Current.Test,所有属性(如 Name)在尝试访问它们时都会抛出 NullReferenceException。
是否有其他方法可以实现在测试名称中提供更多有用信息的目标?
最佳答案
TestName
属性在 NUnit 3 中支持字符串格式化。
这是一个示例用法:
private static IEnumerable TestData()
{
TestCaseData data;
data = new TestCaseData(new Foo("aaa"))
.SetName("case 1 {m}");
yield return data;
data = new TestCaseData(new Foo("bbb"));
yield return data;
}
将生成以下输出:
如您所见,第一种情况的测试名称包含自定义前缀 + 方法名称。
使用this link有关 NUnit 的字符串格式化功能的更多信息。
2 个类可用于此操作 NUnitTestCaseBuilder (line 83)和 TestNameGenerator
方法 .GetDisplayName()
。
关于c# - 在 TestCaseSource 中访问 NUnit 测试名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26374265/
我正在使用 NUnit 2.5.3 TestCaseSource 属性并创建一个工厂来生成我的测试。像这样的东西: [Test, TestCaseSource(typeof(TestCaseFacto
我使用带有 TestCaseSource 属性的 NUnit 以与 NUnit TestCaseSource pass value to factory 相同的方法对动态数据进行数据驱动测试。和 Ho
我有一个简单的方法,可以从列表中计算给定的计算。我想为此方法编写一些测试。 我正在使用 NUnit。我正在使用 TestCaseSource 因为我试图给出一个列表作为参数。我有这个 question
我有以下生成一组测试用例的方法! public IEnumerable PrepareTestCases(param1) { foreach (string entry in entries)
我想知道是否有办法使用 TestCaseSource在具有派生类以通用方式提供的数据的基础测试类中。 例如,如果我有以下基类: public abstract class Base { pro
我有一些使用 TestCaseSource 函数的 NUnit 测试。不幸的是,我需要的 TestCaseSource 函数需要很长时间来初始化,因为它递归地扫描文件夹树以查找将传递给测试函数的所有测
我正在尝试使用 NUnit 中的 TestCaseSource 运行多个测试。但是我很难让 [SetUp] 在我需要的时候运行。 目前它按照我想要的方式工作,但感觉不“正确”。所以下面是主要的测试用例
我最近开始使用 NUnit 为我的项目进行集成测试。这是一个很棒的工具,但我发现了一个我似乎无法解决的缺点。我所有的集成测试都使用 TestCaseSource 属性并为每个测试指定一个测试用例源名称
基于 https://gigi.nullneuron.net/gigilabs/data-driven-tests-with-nunit/网站。我尝试创建一个简单的测试用例,为将来读取数据做准备。但我
我想做的正是这个页面的第一个例子,但是...... http://nunit.org/index.php?p=testCaseSource&r=2.5 我可以改变的值(value) stati
我目前有一组单元测试,它们对于许多 Rest API 端点都是一致的。假设类是这样定义的。 public abstract class GetAllRouteTests { [Test] pu
我是一名 QA,决定使用 SpecFlow经过一番考虑后,我的测试自动化。我认为它很棒,但缺少一个我经常与其他测试运行程序(如 NUnit)一起使用的功能 - 类似于 TestCaseSource 的
我很难让 nUnit TestCaseSource 属性在 nUnit 2.6.4.14350 中正常工作。 当通过 VS2010 运行单元测试时,它只是说测试被忽略,没有关于原因的任何额外信息。 C
如何使用多个 TestCaseSource 属性为 N-Unit 2.62 中的测试提供测试数据? 我目前正在做以下事情: [Test, Combinatorial, TestCaseSource(t
我有一系列测试,我想在其中使用相同的测试用例数据来进行一系列不同的测试。 例如: [Test, TestCaseSource("TestData")] public void Test1(Foo fo
在使用 NUnit 编写单元测试时,您可以使用 TestCaseSourceAttribute 提供多个数据输入组合。来自 NUnit's documentation 的示例: private sta
是否可以将NUnit的[TestCaseSource]属性与多个参数一起使用?这是我的代码(正在从MbUnit迁移): public IEnumerable GetTestSwitchMultiIte
在我测试接收更复杂对象的方法的场景中,我通常使用类似于此的方法针对许多测试用例来测试该方法: [TestFixture()] public class DataTransmitterFactoryTe
我在 VS2013 中使用 TFS。我在编写测试时使用 TestCaseSource: [Test] [TestCaseSource("GetExtraWifQuestionsTestData")]
对于像 2 或 4 这样的每个预期返回值,我想将此值作为单元测试方法的参数传递。但是我得到一个异常,参数不正确。当我删除 countExpected 参数时,单元测试运行良好,我只是无法断言 coun
我是一名优秀的程序员,十分优秀!