出于某种原因,我的测试类在eclipse中工作并传递,但如果我使用mvn test -Dtest=BmwTest
从命令行尝试则失败。它给出的原因是:
java.lang.AssertionError: Never found parameters that satisfied method assumptions. Violated assumptions: []
我的代码:
@RunWith(Theories.class)
public class BmwTest {
@DataPoints
public static Integer[] a = {
1,
2,
3
};
@Theory
public void testMyTest(Integer a) {
}
}
我尝试过使用原语(int
),它仍然会出现同样的错误。单数注释@DataPoint
有效,但复数注释@DataPoints
没有。这是怎么回事?非常感谢!感谢
答案 0 :(得分:0)
我做了一些挖掘,结果证明junit-dep导致了这个问题。我检查了测试类路径,并且包含了junit.jar和junit-dep.jar。基本上,它们是相同的,唯一的区别是junit-dep.jar不包括hamcrest libs。如果你想知道junit-dep来自哪里,它是对jmock的依赖,我忘了提到我们正在使用它。我删除了我的pom中的junit-dep依赖关系,一切正常。
<dependency>
<groupId>org.jmock</groupId>
<artifactId>jmock-junit4</artifactId>
<version>2.6.0</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit-dep</artifactId>
</exclusion>
</exclusions>
</dependency>