2014-12-05 30 views
0

我是maven的新手。我正在运行我的命令提示符下的测试。这些测试生成一个数据库。我的问题是,在测试完成后,数据被删除。 我想维护生成的数据库以便稍后使用它。有没有办法在maven中做到这一点? 这是我通过命令提示符下运行:运行maven测试后防止数据被删除

 mvn -Dtest=TestDynamicLayers test 

我看到这里有一个类似的问题,但它并没有解决我的问题: Prevent data from being deleted after test run with Hibernate/Spring/Maven/MySQL

感谢 季米特里斯

回答

1

我不会我们不希望从测试中删除数据成为Maven行为,这通常会在测试中的“拆卸”步骤中发生,或者您链接的线程通过@Transactional测试的自动回滚建议。

假设测试运行,在您的示例中,TestDynamicLayers.java是唯一正在执行的测试,因此数据删除可能是某个测试方法或“之后”步骤之一。例如如果使用JUnit注释,则拆解将在@AfterTest注释的方法中预期。

通常我会建议不要使用通常在Maven构建的测试阶段运行的测试来产生副作用,因为这意味着多个测试执行可能会有不同的结果。由于这个原因,在测试执行之后删除测试数据是可取的。就个人而言,我会走得更远,并使用内存数据库进行单元测试。

我建议你为要保留的数据提取数据创建代码,并通过用main()方法包装来执行测试。如果您希望数据也是由测试创建的,则可以调用相同的代码,保留当前不需要的数据删除并直接使用java调用数据创建-classpath