0

像这样在 webdriver.io 下运行以下 jasmine 测试:node path/to/test/script.js,测试执行(拉起 Web 浏览器,访问目标页面),并且由于最后一行,jasmine 'it' 函数(如下)执行(没有最后行,他们没有,尽管“描述”功能仍在运行)。

但是 jasmine 没有为“it”测试和“expect”断言提供任何类型的报告结果;茉莉花的控制台上没有任何东西。没有“通过/失败”结果,依此类推。

如何让茉莉花做报告,尤其是。詹金斯可以阅读的一种?

问题测试脚本:

var webdriverjs = require('foo-bar/node_modules/webdriverio');
var jasmine = require('foo-bar/node_modules/jasmine-node');

var options = {
    port: 4445,
    desiredCapabilities: {
        browserName: process.argv[2] || 'phantomjs'
    }
};

describe('my webdriverjs tests', function () {
  var client;

  jasmine.DEFAULT_TIMEOUT_INTERVAL = 9999999;

  beforeEach(function() {
    client = webdriverjs.remote(options);
    client.init();
  });

  it('shows the correct title', function (done) {
    client
      .url('http://localhost:4444').getTitle(function(err, title) {
        expect(title).toBe('foo bar');
      }).call( done );
  });

  afterEach(function(done) {
    client.end(done);
  });
});

jasmine.getEnv().execute();

注意:在这里交叉发布:https ://groups.google.com/forum/#!topic/webdriverio/-EOrQ003B9I

4

3 回答 3

0

在研究这个问题时,我遇到了一些相同的挑战。最大的问题是该测试需要作为 jasmine 测试执行,而不是 webdriver 测试。

decribe('my webdriverio tests with jasmine', function(){
    var client;

    beforeEach(function(){
        client = require('path/to/webdriverio').remote({
            desiredCapabilities: {browserName:'safari'}
        }).init.url('https://www.stackoverflow');
    }, 5000);

    afterEach(function(done){
        client.end(done);
    }, 5000);

    it('runs a very simple test',function(done){
       client.getTitle(function(err,result){
            expect(result).toBe('Stack Overflow');
       }).call(done);
    }, 5000);
});

现在要运行这个测试,你只需从终端运行一个典型的jasmine-node命令。

于 2014-12-02T05:20:46.727 回答
0

这取决于您使用的命名约定。首先,您需要删除最后一行:jasmine.getEnv().execute();然后运行jasmine-node带有--matchall标志的命令:

jasmine-node --matchall path/to/test/script.js

如果你命名你的文件script_spec.js,那么你可以在没有--matchall标志的情况下运行它。

这也假设您已jasmine-node全局安装。如果要使用本地node_modules依赖项,则需要运行以下命令:

./node_modules/jasmine-node/bin/jasmine-node --matchall path/to/test/script.js
于 2015-01-11T17:49:24.960 回答
0

当您使用jasmine-node模块时,您应该使用

node_modules/jasmine-node/bin/jasmine-node $TEST_DIRECTORY

正如文档所说,您的测试应该以 *spec.js、*spec.coffee 或 *spec.litcoffee 结尾。

并且jasmine.getEnv().execute();var jasmine = require('foo-bar/node_modules/jasmine-node');应该出现在您的脚本中。

于 2015-02-12T22:55:04.823 回答