我目前正在使用硬编码URL browser.url("http://www.x.com");
我通过gherkin start [url]
有没有一种方法可以在命令行中输入任何URL以开始测试并使其在browser.url
调用中进行硬编码URL?我正在使用Selenium-Webdriver和Docker执行用Gherkin编写的测试。
简短的答案是 no ,不幸的是。正如您指出的那样,您的URL中有一个硬编码值。
但是,您的问题应该很容易解决您的问题,并且可以通过轻微的更改使您达到预期的结果。
1。由于您正在使用 webDreviverio ,它基本上是 nodejs 的Selenium Bindings实现,我们实际上可以使用节点构建对象,在我们的情况下,global object
Process.env 。
首先,在您的测试中,继续使用browser.url("http://www.x.com");
的URL替换为变量,例如:browser.url(myUrl);
。
然后,在您的程序标题中声明变量:var myUrl = process.env.URL ?
process.env.URL : "http://www.x.com"
。这会告诉节点:"看,如果您有此过程环境变量设置,则将其返回,否则,请给我您之前拥有的东西(您的硬编码值(。
最后,在从命令行运行测试时,只需将变量带有您所需的值,例如:
$ URL="yourUrlHere" gherkin start
2。由于您使用的是 webDreviverio ,我强烈建议使用其完整的工具套件来利用更好的测试体验。*对未使用的wdio.config.js file *
感到悲伤因此,我建议您查看他们的 testrunner 并通过培训部分。如果您热衷于使用小黄瓜,请不要担心!WebDriverio与 Cucumber 完美集成(以及使用Gherkin的 Mocha 或 Jasmine (。
您的问题将通过wdio.config.js
文件转换为简单的配置更改。
让我知道这是否有帮助。我可能会召集其他一些解决方案。欢呼!