首页 > 解决方案 > 为什么推荐使用 TestNGCitrusTestRunner 而不是 TestNGCitrusTestDesigner?

问题描述

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

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

“建议您使用TestNGCitrusTestRunner。”

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

为什么推荐它?与 Designer 相比,Runner 在使用上是否有优势?设计师真的过时了吗?

标签: testngcitrus-framework

解决方案


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

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

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

设计器和运行器实现确实支持准确数量的操作和 Java DSL fluent API。由于开发人员不断抱怨设计时间与运行时分离,设计器方法在未来可能会被弃用。

不过,Citrus 团队仍有待完成的任务来加强样本和文档中的 runner 使用。

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


推荐阅读