我目前正在使用硬编码的网址browser.url("http://www.x.com");
我通过gherkin start [url]
有没有办法让我可以在命令行中输入任何URL来开始我的测试并在browser.url
调用中取代硬编码的网址?我正在使用Selenium-webdriver和docker来执行用Gherkin编写的测试。
答案 0 :(得分:0)
遗憾的是,简短的回答是否。正如您所指出的,您的网址中包含硬编码值。
但是,应该有一些简单的解决方法可以解决您的问题,并通过微小的更改来实现您想要的结果。
1。由于您正在使用 WebdriverIO ,它基本上是 NodeJS 的Selenium绑定实现,我们实际上可以使用节点内置对象,在我们的例子中是global object
process.env 。
首先,在测试中,继续使用变量替换browser.url("http://www.x.com");
中的网址,如下所示:browser.url(myUrl);
。
然后,在程序头中声明变量:var myUrl = process.env.URL ?
process.env.URL : "http://www.x.com"
。这将告诉Node:"看,如果你有这个流程环境变量设置,那么返回它,否则,只需给我你之前的(你的硬编码值)"。
最后,当从命令行运行测试时,只需添加具有所需值的变量,如下所示:
$ URL="yourUrlHere" gherkin start
2。由于您使用的是 WebdriverIO ,我强烈建议您使用其完整的工具套件来利用更好的测试体验。 *对未使用的wdio.config.js文件感到悲伤 *
因此,我建议您查看一下 Testrunner 并浏览培训部分。如果您热衷于使用小黄瓜,请不要担心! WebdriverIO与使用Gherkin的 Cucumber (以及 Mocha 或 Jasmine )精美地集成在一起。
然后,您的问题将通过wdio.config.js
文件转换为简单的配置更改。
如果这有帮助,请告诉我。我可能会集合其他一些解决方案。干杯!