selenium-webdriver - WebdriverIO - 如何向 Jasmine 测试发送参数?

标签 selenium-webdriver jasmine webdriver-io

我有一堆 Webdriver.io/Selenium 测试,我正在使用 jasmine 测试框架来编写我的测试,所以我有一个 wdio.conf.js 文件,我已经配置为使用 jasmine,按照 these instructions

问题是我正在测试一个高度动态/可配置的基于广告/营销的网络应用程序,并且需要我传递大量配置信息,以便测试知道要测试什么。例如在命令行我想运行类似的东西:

> wdio --campaignId=123 --productId=456

我可以修改 wdio.conf.js 文件中的“onPrepare”函数/事件来获取这些参数,如下所示:

exports.config = {
    ....other options (snip)...

    framework: 'jasmine',

    jasmineNodeOpts: {
        defaultTimeoutInterval: 9999999,
        expectationResultHandler: function (passed, assertion) { }
    },

    onPrepare: function (config) {
        var campaignId = parseInt(process.argv[2]
            .replace('--campaignId=', ''));
        var productId = parseInt(process.argv[3]
            .replace('--productId=', ''));

        config.params = {
            campaignId: campaignId,
            productId: productId
        };
    }
};

...但我不知道如何将这些传递给我的 Jasmine 测试。我尝试从 process.argv 中读取,但缺少 campaignId 和 productId args,例如

describe('Campaign Tests', function () {

    beforeEach(function(done) {
        browser
            .session(function(err, client) {
                var campaignId = parseInt((process.argv[2] || '')
                    .replace('--campaignId=', ''));
                var productId = parseInt((process.argv[3] || '')
                    .replace('--productId=', ''));

                // campaignId and productId are both NaN/undefined
            });
    });

    it('should test something...snip...

如何将自定义参数/参数传递给我的 jasmine 测试?我可以将它们写入 onPrepare 中的一个文件,然后在 jasmine 测试中读取该文件,这似乎有点老套。

最佳答案

我建议使用环境变量来解决此问题。

例如,您可以像 VARIABLE=1 wdio wdio.config.js 一样运行测试,然后在测试中您可以使用 process.env.VARIABLE 轻松访问它>

如果您使用一些构建工具,如 gulp、grunt 等,您可以通过标准方式传递命令行 (gulp e2e --variable=1),然后设置 process。 env.VARIABLE 在构建工具任务中。

关于selenium-webdriver - WebdriverIO - 如何向 Jasmine 测试发送参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33153459/

相关文章:

visual-studio-code - WebdriverIO 无法创建 session 来使用 Appium 测试 Android 模拟器

java - 未知错误: unhandled inspector error: {"code":-32000 ,"message" :"Cannot find context with specified id"}

java - 浏览器控制台无法识别使用 selenium webdriver 注入(inject)的 js 变量

angularjs - Javascript.confirm() 和 Angularjs Karma e2e 测试

JavaScript 测试简单模块

javascript - webdriverio 'setValue' 到输入字段会引发错误 InvalidElement State

javascript - 如何使用 webdriverio 单击并按住

javascript - 如何使用 Selenium 进行硬刷新

java - 如何截取在 selenium 中失败的 webelement(部分屏幕而不是整个页面)

javascript - 如何进行单元测试来查看 Angular 是否未定义?