我最近被要求有效地向我的部门推销单元测试。我无法告诉你这让我有多兴奋,但我确实有一个担忧。我们将 JUnit 与 Spring 和 Maven 一起使用,这意味着每次mvn test
调用时,它都会重建数据库。显然,我们不能将它与我们的生产服务器集成——它会杀死有价值的数据。
如何在不告诉 maven 跳过测试的情况下防止重建?
我能想到的最好的办法是分配脚本在测试数据库中运行(添加换行符以提高可读性):
mvn test
-Ddbunit.schema=<database>test
-Djdbc.url=jdbc:mysql://localhost/<database>test?
createDatabaseIfNotExist=true&
useUnicode=true&characterEncoding=utf-8
我不禁认为必须有更好的方法。
我特别有兴趣了解是否有一种简单的方法可以告诉 Maven 只在特定类上运行测试而不构建其他任何东西? mvn -Dtest=<test-name> test
仍然重建数据库。
=======更新=======
我脸上有点鸡蛋。我没有意识到我在两个地方使用了相同的变量,这意味着 POM 使用“skip.test”变量来重建数据库和运行测试......