java - 参数化 JBehave 测试

标签 java maven testing jbehave

我有一个带参数的故事:

Given save in the <fileName> the data from <sqlQuery>
Then...

Examples:
fileName    |sqlQuery
file.txt    |query1

我使用 maven -Denvironment=DEV 在特定环境中运行我的测试。 现在我想使用 -Denvironment=UAT 在 UAT 上运行这个测试,但问题是 sqlQuery 是不同的。如何在 java 代码中指示如果 -Denvironment=DEV 则使用 query1 但如果 -Denvironment=UAT 则使用 JBEHAVE 故事使用 query2?

有人帮我吗?

最佳答案

在我看来,最简单和最巧妙的方法是直接在故事/场景中为每个环境提供不同的参数, 并根据环境在 java 代码中选择合适的参数。

我们将此方法用于 3 个测试环境:DEV、UAT、PRE,它对我们非常有效。
当故事失败时,您无需深入研究日志或实现来查找使用了哪个参数值,一切都在 JBehave 报告中可见。

此外,更改参数也更容易,测试人员只需更改这个故事,他不需要研究代码中的实现。

Given save in the <fileName> the data from the query: 
- DEV:<DevSqlQuery> UAT:<UatSqlQuert> PREPROD:<PreSqlQuery>
Then...

Examples:
|fileName    |DevSqlQuery|UatSqlQuery|PreSqlQuery|
|file.txt    |query1     |query2     |query3     |

关于java - 参数化 JBehave 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46832876/

相关文章:

java - 运行时发生异常。空 : InvocationTargetException: Connector configured to listen on port 8080 failed to start -> [Help 1]

java - “maven test”仅适用于 Java

maven 原型(prototype) :generate failure caused by org. apache.maven.plugin.MojoFailureException

IOS App内存使用标准

spring - Spring Boot 和 RestAssured 中的模拟 session

Java 泛型代码使用 javac 编译,使用 Eclipse Helios 失败

java - 使用 http volley 发出 get 请求时响应为空

Java KeyListener 断断续续

java - DropDownChoice - 没有选择,值 -1?

objective-c - 延迟 XCTest 中所有单元测试的执行