[英]JUnit tests with h2 database behave strangely
我在一个使用JDBC连接到h2数据库的maven项目中编写了几个JUnit测试类。 我有8个测试班。
All tests
时,出现JDBC错误(在最后一个测试类上: WorkspaceTest.java ): org.h2.jdbc.JdbcSQLException: Table "WORKSPACE" not found; SQL statement:
(如果您想要完整的跟踪信息,我会放它,但是有点长)。
注意 :所有其他7个测试类均已通过。
当我使用IntelliJ分别运行每个测试时,它们全部通过了1的测试。
当我使用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上运行了大约10次All tests
,它工作了大约6次,并以相同的错误失败了4次。 不知道我是否真的可以信任智能测试机制。
EDIT2:如果有帮助,我尝试了更多尝试:我在8个测试类中总共运行了7个,对于所有8个类(我一起运行1 2 3 4 5 6 7,然后一起运行2 3 4 5 6 7 8,然后。 ..)他们都通过了(8个中的7个都组合)
如果使用@BeforeClass删除数据库并重新创建数据库,是否可以正常工作? 也许一个测试的@AfterClass在另一个测试的@BeforeClass之后执行,因为它花费的时间比您预期的要多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.