为什么NUnit会忽略具有组合/值属性的测试?

为什么NUnit会忽略具有组合/值属性的测试?,nunit,teamcity,nunit-2.6,Nunit,Teamcity,Nunit 2.6,我尝试在NUnit中使用组合/值属性 虽然它在本地工作,但在运行NUnit 2.6.2的TeamCity build中跳过了用这些属性修饰的测试—生成报告表明该测试已被忽略,但没有给出忽略该测试的任何详细原因 根据,NUnit 2.5中存在组合属性(以及值属性),因此我希望NUnit 2.6仍然支持该属性 为什么这个测试被忽略了 下面是一个最基本的例子,它再现了这个问题。在本地,两个测试都运行并给出完全相同的结果。在TeamCity上,仅执行Test1,而Test2被标记为忽略 [TestCas

我尝试在NUnit中使用
组合
/
属性

虽然它在本地工作,但在运行NUnit 2.6.2的TeamCity build中跳过了用这些属性修饰的测试—生成报告表明该测试已被忽略,但没有给出忽略该测试的任何详细原因

根据,NUnit 2.5中存在
组合
属性(以及
属性),因此我希望NUnit 2.6仍然支持该属性

为什么这个测试被忽略了

下面是一个最基本的例子,它再现了这个问题。在本地,两个测试都运行并给出完全相同的结果。在TeamCity上,仅执行
Test1
,而
Test2
被标记为忽略

[TestCase(“a”,“1”)]
[测试用例(“a”、“2”)]
[测试用例(“b”、“1”)]
[测试用例(“b”、“2”)]
公共void Test1(字符串x,字符串y){
AreEqual(x+”,“+y,string.Format(“{0},{1}”,x,y));
}
[测试,组合]
public void Test2([值(“a”,“b”)]字符串x,[值(“1”,“2”)]字符串y){
AreEqual(x+”,“+y,string.Format(“{0},{1}”,x,y));
}

你的问题可以通过一个代码示例来明确你在做什么

然而。。。我会试试看

CombinationalAttribute
仅告诉NUnit如何组合为测试方法的各个参数提供的值,以便创建测试用例。如果您没有为每个参数提供这样的值,那么就没有可以组合的东西,也没有创建测试用例

使用ValuesAttribute和类似属性提供单个值。当提供这样的值时,实际上组合是默认值,因此实际上不需要组合

我猜,在没有看到代码的情况下,您没有给CombinationalAttribute任何值进行组合

您可能想知道为什么在这种情况下没有错误消息。这是因为有些人创建的测试有时有可用的数据,有时没有可用的数据。在这里,一个可抑制的警告可能会有用


由于您的问题只出现在TeamCity中(我添加了一个标签),这可能只是TeamCity的问题。需要注意的一点是,TeamCity有时可能会报告与NUnit结果文件中包含的内容不同的内容。。。因此,您应该检查该文件,以确定NUnit是否真的跳过了测试,或者TC是否只是认为它跳过了测试。

很高兴能从NUnit的维护人员那里得到答案。实际上,我确实使用了
Values
attribute(我在最初的问题中错误地将其命名为“Value”);我编辑了我的问题以添加一个示例。还请注意,测试在我的机器上正确运行,所有检查都完全按照预期进行,因此我不希望我编写的代码中出现错误。只有当它从TeamCity运行时,组合测试才会被标记为忽略。我认为这个问题可能与异步测试有关,所以我简化了它们。即使是普通的非异步测试也存在这个问题。我再次编辑了我的答案,以提供这个更简单的示例。我在答案中添加了一个teamcity标记和一些进一步的想法。您在teamcity中使用哪个runner来运行NUnit测试?