为什么推荐使用 TestNGCitrusTestRunner 而不是 TestNGCitrusTestDesigner?

Why is it recommended to use TestNGCitrusTestRunner instead of TestNGCitrusTestDesigner?

由于我设置 Maven 项目的方式,默认示例测试 class 建议在使用 Citrus 版本 2.7.6 时使用 TestNGCitrusTestDesigner 扩展测试 classes。因此,我与设计师一起进行了集成测试。

在对使用 Designer 设置的项目进行故障排除时,我 运行 多次进入此语句:

"It is recommended that you use TestNGCitrusTestRunner."

除了 Runner 应该与 Citrus 2.7.5 或更高版本一起使用之外,此声明没有得到进一步声明的支持,例如 Designer 可能已过时或有故障。

为什么推荐?与 Designer 相比,Runner 在使用上有优势吗? Designer 实际上已经过时了吗?

设计器实现将在设计时首先将所有测试操作读入一个完整的测试用例。一旦测试用例在设计时通过 Java DSL 完全构建,整个测试用例就会在运行时步骤中执行。

运行器实现没有将设计时和运行时分开。使用 Java DSL 构建时,测试用例及其操作会立即执行。这种方法对开发人员来说更自然,因为您可以立即访问测试操作的结果,并且可以调试运行程序的执行。

设计器无法按照您的预期执行调试会话。除此之外,设计者无法在测试操作之间混合自定义 Java 代码。

Designer 和 runner 实现确实支持准确数量的操作和 Java DSL 流畅 API。设计器方法将来可能会被弃用,因为开发人员不断抱怨设计时间与运行时分离。

尽管如此,Citrus 团队仍有待办事项以加强样本和文档中的转轮使用。

另请参阅 Citrus 文档,该文档试图通过具体示例解释不同的设计器和运行器方法:https://citrusframework.org/citrus/reference/html/index.html#writing-test-cases-in-java