我是maven的新人。我从命令提示符运行测试。这些测试生成一个数据库。我的问题是在测试完成后数据被删除。 我想维护生成的数据库以便以后使用它。有没有办法在maven中这样做? 这是我通过命令提示符运行的:
mvn -Dtest=TestDynamicLayers test
我看到这里有一个类似的问题,但它并没有解决我的问题: Prevent data from being deleted after test run with Hibernate / Spring / Maven / MySQL
由于 迪米瑞斯
答案 0 :(得分:1)
我不希望将测试中的数据删除为Maven行为,这通常会在测试中的“拆卸”步骤中发生,或者通过@Transactional的自动回滚建议链接到的线程测试
假设测试运行,在您的示例中,TestDynamicLayers.java是唯一正在执行的测试,因此数据删除将是其中一个测试方法或其中一个“后”步骤。例如如果使用JUnit注释,则在注释@AfterTest的方法中会出现拆解。
通常我建议不要使用通常在Maven构建的测试阶段运行的测试来产生副作用,因为这意味着多个测试执行会产生不同的结果。出于这个原因,在测试执行之后删除测试数据是可取的。就个人而言,我会更进一步,使用内存数据库进行单元测试。
我建议您提取要保留的数据的数据创建代码,并在测试之外通过使用main()方法包装它来执行此操作。如果您希望数据也可以通过测试创建,则可以调用相同的代码,保持当前不需要的数据删除并使用java -classpath直接调用数据创建