2012-02-28 143 views
2

我正在用maven,scala和junit编写一个简单的项目。Maven项目找不到junit

我发现的一个问题是我的测试找不到org.junit.framework.Test。测试文件:

import org.junit.framework.Test 

class AppTest { 
    @Test 
    def testOK() = assertTrue(true) 

    @Test 
    def testKO() = assertTrue(false) 
} 

返回错误:

[WARNING]..... error: object junit is not a member of package org 
[WARNING] import org.junit.framework.Test 
[WARNING]   ^

我确实有增加的JUnit作为一个依赖,它清楚地坐在我的仓库里。

 <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.8.1</version> 
      <scope>test</scope> 
     </dependency> 

有人可以告诉我是什么原因造成的吗?

非常感谢

+1

测试文件是否在测试文件夹中?如果不是的话,测试的范围将会搞砸一切。尝试删除范围标签,看看是否有帮助。 POM中的其余依赖关系在这里看起来很好。其次,你的AppTest类是什么包? – 2012-02-28 18:39:22

+0

感谢您的回复。是的,测试代码位于测试文件夹中。该文件位于包com.mycompany.myservice中。 – Kevin 2012-02-28 19:16:15

+0

你的.m2文件夹中是否有junit .jars文件?我认为这是〜/ .m2 /默认存储库。 – 2012-02-28 21:04:00

回答

1

包中的JUnit 4.8.1的Testjunit.framework.Test而不是org.junit.framework.Test

+0

关闭,但没有雪茄。它实际上是org.junit.Test。请参阅http://junit.sourceforge.net/javadoc/org/junit/Test.html。它不回答为什么org.junit没有找到。 – 2012-02-28 20:07:41

+0

我不确定,但是您指出的文档是JUnit 3.8,不是4.8。如果您查看JUnit jar(http://search.maven.org/#artifactdetails%7Cjunit%7Cjunit%7C4.8.1%7Cjar),您会看到导入是junit.framework.Test。 – 2012-02-28 21:36:32

+0

你说得对,请尝试http://kentbeck.github.com/junit/javadoc/latest/org/junit/Test.html。 OP使用的注解@Test是org.junit.Test。 – 2012-02-29 06:02:45

2

由于@nico_ekito说,您的导入不正确,应该是org.junit.Test

但是这并不能说明你的问题:

[WARNING]..... error: object junit is not a member of package org 
[WARNING] import org.junit.framework.Test 
[WARNING]   ^

所以它不能找到org.junit。这意味着在编译测试时,org.junit不在类路径中。因此,无论你的依赖树是搞砸了,还是实际的jar。

尝试

mvn dependency:list 

这将导致类似:

[INFO] The following files have been resolved: 
[INFO] junit:junit:jar:4.8.1:test 

确保你有被解决没有其他的JUnit库。如果一切正常,请检查您的junit罐的内容。它应该包含org.junit.Test类。如果没有,你有一个损坏的回购,或者你没有找到正确的地方。要知道最简单的方法是使用:

mvn dependency:copy-dependencies 

与依赖的副本创建目标/依赖。你可以看看那里的罐子。