如何 运行 我的宁静功能,为程序提供命令行选项(登录凭据)?
How to run my serenity feature, providing command line options(login credentials) to the program?
我的 serenity 项目功能运行良好,通过 运行ning maven 项目使用
mvn clean verify
但我们的领导层反对在功能文件或任何外部属性文件中保留登录凭据(用户 ID、密码)。仅在命令行中提供它们,如
mvn exec:java -Dexec.mainClass="com.module.test.Main" -Dexec.args="arg0 arg1 arg2"
但是在 Serenity 中,没有 Main.java 文件有 main() 方法。那么
如何使用带有提供的 2 个参数的 Maven 调用我的宁静功能文件 运行?
非常感谢您的建议,
首先,贵公司的做法是正确的。敏感数据永远不应该提交给代码。如果是,那么有权访问代码的任何人都可以访问所有内容。
Serenity 允许在运行时传递参数,例如
mvn clean verify -DUSERNAME=bob -DPASSWORD=mysupersecurepassword
这会将值传递给 serenity runner。然后 Serenity 提供了一个实用程序来使用 SystemEnvironmentVariables.createEnvironmentVariables 读取这些值,例如
EnvironmentVariables envs = SystemEnvironmentVariables.createEnvironmentVariables();
String username = env.getProperty("USERNAME");
String password = env.getProperty("PASSWORD");
我的 serenity 项目功能运行良好,通过 运行ning maven 项目使用
mvn clean verify
但我们的领导层反对在功能文件或任何外部属性文件中保留登录凭据(用户 ID、密码)。仅在命令行中提供它们,如
mvn exec:java -Dexec.mainClass="com.module.test.Main" -Dexec.args="arg0 arg1 arg2"
但是在 Serenity 中,没有 Main.java 文件有 main() 方法。那么
如何使用带有提供的 2 个参数的 Maven 调用我的宁静功能文件 运行?
非常感谢您的建议,
首先,贵公司的做法是正确的。敏感数据永远不应该提交给代码。如果是,那么有权访问代码的任何人都可以访问所有内容。
Serenity 允许在运行时传递参数,例如
mvn clean verify -DUSERNAME=bob -DPASSWORD=mysupersecurepassword
这会将值传递给 serenity runner。然后 Serenity 提供了一个实用程序来使用 SystemEnvironmentVariables.createEnvironmentVariables 读取这些值,例如
EnvironmentVariables envs = SystemEnvironmentVariables.createEnvironmentVariables();
String username = env.getProperty("USERNAME");
String password = env.getProperty("PASSWORD");