junit理论不适用于maven

时间:2013-07-25 20:22:22

标签: maven junit theory

出于某种原因,我的测试类在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没有。这是怎么回事?非常感谢!感谢

1 个答案:

答案 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>