Unit testing Maven没有';我看不到经过测试的课程

Unit testing Maven没有';我看不到经过测试的课程,unit-testing,maven-2,Unit Testing,Maven 2,我对maven有意见。当我尝试编译测试类时(mvntest compile),它找不到测试类中使用的测试类。例如,类UserTest无法编译,因为编译器找不到类User,该类正在UserTest类中使用。问题最有可能出现在测试编译阶段的类路径不包括目标文件夹中,这很奇怪,因为我认为maven确实包含了它 如果有人知道如何解决这个问题,我将不胜感激 可以在这里找到pom.xml文件,就像项目的其余部分一样 maven输出如下: [INFO] Scanning for projects... [IN

我对maven有意见。当我尝试编译测试类时(
mvntest compile
),它找不到测试类中使用的测试类。例如,类
UserTest
无法编译,因为编译器找不到类
User
,该类正在
UserTest
类中使用。问题最有可能出现在
测试编译
阶段的类路径不包括目标文件夹中,这很奇怪,因为我认为maven确实包含了它

如果有人知道如何解决这个问题,我将不胜感激

可以在这里找到pom.xml文件,就像项目的其余部分一样

maven输出如下:

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building JBTBackup Maven Webapp
[INFO]    task-segment: [test-compile]
[INFO] ------------------------------------------------------------------------
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 3 resources
[WARNING] While downloading hibernate:hibernate:3.0.5
  This artifact has been relocated to org.hibernate:hibernate:3.0.5.


[INFO] [compiler:compile {execution: default-compile}]
[INFO] No sources to compile
[INFO] [resources:testResources {execution: default-testResources}]
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/arg/workspace/JBTBackup/src/test/resources
[INFO] [sql:execute {execution: add-test-data}]
[INFO] Executing file: /tmp/pre-test-editdb.1278025605sql
[INFO] 0 of 0 SQL statements executed successfully
[INFO] [compiler:testCompile {execution: default-testCompile}]
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 2 source files to /home/arg/workspace/JBTBackup/target/test-classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[26,15] cannot find symbol
symbol  : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest

[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[27,15] cannot find symbol
symbol  : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest

[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[28,15] cannot find symbol
symbol  : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest

[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/BTFileTest.java:[23,15] cannot find symbol
symbol  : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.BTFileTest

[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/BTFileTest.java:[25,15] cannot find symbol
symbol  : class BTFile
location: class org.tomasherman.JBTBackup.Resource.Entity.BTFileTest

[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[26,29] cannot find symbol
symbol  : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest

[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[27,29] cannot find symbol
symbol  : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest

[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[28,29] cannot find symbol
symbol  : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest

[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/BTFileTest.java:[23,29] cannot find symbol
symbol  : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.BTFileTest

[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/BTFileTest.java:[25,31] cannot find symbol
symbol  : class BTFile
location: class org.tomasherman.JBTBackup.Resource.Entity.BTFileTest

[INFO] 10 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure

/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[26,15] cannot find symbol
symbol  : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest

/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[27,15] cannot find symbol
symbol  : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest

/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[28,15] cannot find symbol
symbol  : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest

/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/BTFileTest.java:[23,15] cannot find symbol
symbol  : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.BTFileTest

/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/BTFileTest.java:[25,15] cannot find symbol
symbol  : class BTFile
location: class org.tomasherman.JBTBackup.Resource.Entity.BTFileTest

/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[26,29] cannot find symbol
symbol  : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest

/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[27,29] cannot find symbol
symbol  : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest

/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[28,29] cannot find symbol
symbol  : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest

/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/BTFileTest.java:[23,29] cannot find symbol
symbol  : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.BTFileTest

/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/BTFileTest.java:[25,31] cannot find symbol
symbol  : class BTFile
location: class org.tomasherman.JBTBackup.Resource.Entity.BTFileTest


[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Thu Aug 26 12:54:37 CEST 2010
[INFO] Final Memory: 17M/172M
[INFO] ------------------------------------------------------------------------

感谢大家的评论,Tomas Herman

您是尝试调用mvn compile test compile,还是仅调用mvn clean install?

请注意,Maven已经无法编译要测试的类:

[INFO] [compiler:compile {execution: default-compile}]
[INFO] No sources to compile

@Gopi的评论解释了为什么会发生这种情况。默认情况下,您应该将代码放在
src/main/java
下,以便Maven查看。

您的文件中没有针对
User
类的显式导入,这意味着in应该位于
org.tomasherman.JBTBackup.Resource.Entity
包中的某个位置

但是,在或中都没有这样的文件


我在POM文件中看不到任何可能生成此类的内容(如hbm2java)。也许您忘记提交了?

您必须将应用程序类移动到src/main/java/。。。与src/main/resources不同,cause-Maven假定(约定优先于配置)java类位于src/main/java中。这意味着它们永远不会被编译。

在github存储库中,我没有找到所有代码都应该驻留的src/main/java文件夹。另外,如果您在本地有此代码,那么首先尝试“mvn编译”您是正确的,先生…我真傻,自己没有注意到这一点,谢谢!