我在一个使用JDBC连接到h2数据库的maven项目中编写了几个JUnit测试类。 我有8个测试类。
All tests
时,我遇到了JDBC错误(在最后一个测试类上: WorkspaceTest.java ): org.h2.jdbc.JdbcSQLException: Table "WORKSPACE" not found; SQL statement:
(如果你想要完整的痕迹,我会把它,但它有点长)。
注意:所有其他7个测试类都已通过。
当我使用IntelliJ单独运行每个测试时,它们都会逐一通过。
当我使用mvn clean install
运行测试时,出现构建失败,错误(在最后一个测试类: OWSContextTest.java ):
update(org.orbisgis.server.mapcatalog.OWSContextTest): Table "FOLDER" not found; SQL statement:
注意:所有其他7个测试类都已通过。
mvn -Dtest=OWSContextTest test
)单独运行此测试时,测试通过。测试类应该是独立的,因为在每个测试类中都有@BeforeClass
删除数据库,然后创建它,最后填充它,以及@AfterClass
删除数据库
如果您还需要其他任何内容,我会为其进行编辑。 我真的不知道这种行为的原因。
感谢您的帮助。
编辑:我刚刚在IntelliJ上运行All tests
大约10次,并且它工作了大约6次,并且失败了4次相同的错误。不知道我是否真的可以信任intelJ测试机制。
EDIT2:如果可以提供帮助,我尝试了更多的东西: 我在8个测试课程中跑了7个,所有8个测试课程(我一起跑1 2 3 4 5 6 7,然后2 3 4 5 6 7 8,然后......)他们都通过了(所有7个组合)超出8)
答案 0 :(得分:0)
如果使用@BeforeClass删除数据库并重新创建它,它是否有效?也许测试的@AfterClass是在另一个测试的@BeforeClass之后执行的,因为它花费的时间比你预期的要多。