我们有几个模块,每个模块都有单独的黄瓜测试套件。现在的目标是连接这些黄瓜测试套件,以提供端到端模块自动化测试
现有模块设置
模块A
> Feature > Step definition (create xml file,validate xml attributes and post it to queue A)
模块B
> Feature > Step definition (publish static xml to queue A,verify various checkpoints,post message to queue B)
模块C
> Feature > Step definition (publish static xml to queue B,verify various check points,post message to queue C)
我开始创建新的Integration maven项目
集成项目pom.xml依赖于
1. Module A cucumber jar
2. Module B cucumber jar
3. Module C cucumber jar
整合功能
Given all prerequisites
When message is posted from module A to queue A
Then verify the if message is published successfully to queue A
Then verify if module B consumed message from queue A, processed then posted message to queue B
Then verify if module C consumes message from queue B, processed then posted msg to queue C
.....
...so on
整合步骤
@When
message is posted from module A to queue A {
invoke steps def in module A jar to post the message (reuse step def method in module A)
}
@When
verify the if message is published successfully to queue A{
invoke steps on module A jar and assert data (code reuse)
}
@When
verify if module B consumed message from queue A, processed then posted message to queue B{
invoke step def in module B jar and assert data (code reuse)
}
流程
>Integration Feature
>Integration Steps
>IntegrationService Layer
> Module A Service Layer
> Invokes module A steps def
1 Steps def
2 Steps def
> Module B Service Layer
> Invokes module B steps def
1 Steps def
2 Steps def
有关集成设计方法的任何建议或意见吗?欢迎更好的设计方法
答案 0 :(得分:0)
@CucumberOptions(... glue = { "com.modulea.steps", "com.moduleb.steps", "com.modulec.steps" } ...}