Java 使用Flowable在Spring应用程序中进行集成测试

Java 使用Flowable在Spring应用程序中进行集成测试,java,spring,activiti,flowable,Java,Spring,Activiti,Flowable,我需要使用Flowable为我的Spring应用程序编写一些集成测试。我的测试必须包括应用程序BPMN工作流逻辑 我的问题是-我应该像在应用程序中那样在测试期间启动和部署普通的可流动引擎吗?在本文中,我看到一些为单元测试准备的可流动类,但没有为集成做任何准备 启动真正的可流动发动机不会在运行过程中导致性能问题吗?如果我需要在每个测试中单独运行此测试,恐怕它们将花费很长时间。在应用程序中如何处理这一问题?如果你问我,那么你肯定应该在测试期间启动并部署一个正常的可流动引擎。您从文档中粘贴的链接正是您

我需要使用Flowable为我的Spring应用程序编写一些集成测试。我的测试必须包括应用程序BPMN工作流逻辑

我的问题是-我应该像在应用程序中那样在测试期间启动和部署普通的可流动引擎吗?在本文中,我看到一些为单元测试准备的可流动类,但没有为集成做任何准备


启动真正的可流动发动机不会在运行过程中导致性能问题吗?如果我需要在每个测试中单独运行此测试,恐怕它们将花费很长时间。在应用程序中如何处理这一问题?

如果你问我,那么你肯定应该在测试期间启动并部署一个正常的可流动引擎。您从文档中粘贴的链接正是您进行测试的方式。请记住,您可以使用自己的配置,测试不需要特殊的Spring配置

在测试过程中,启动真正的可流动发动机不会导致任何性能问题。Flowable repository中的所有测试实际上都是在单个测试中创建和销毁引擎的测试,速度非常快。在您的情况下,它会更快,因为您不会为每个测试启动引擎,而Spring应用程序上下文会在测试之间缓存。我还必须注意,即使每次测试都启动引擎,时间也可以忽略不计,因为启动引擎相当快

请记住,Spring应用程序中的其他组件可能会减慢测试的开始

作为模块中的参考,28个测试类中有76个测试,其中每个测试类都有自己的Spring配置,这意味着测试之间没有Spring上下文重用。所有这些测试在我的本地机器上都需要55秒。对于这些测试,您需要考虑到一些测试正在测试一些复杂的场景,其中异步执行器正在运行,并且比通常需要更多的时间。你很可能不会做这样的测试。禁用3个测试类中的3个特定测试后,测试时间将下降到28秒

注意:如果您没有使用@Deployment,或者您依赖于Flowable的自动部署功能,那么请确保您正在删除您在测试中创建的实例。这将确保一个测试的数据不会影响另一个测试的数据