如何使用grunt和量角器进行单e2e测试

red*_*ulf 7 javascript end-to-end angularjs gruntjs protractor

我假设这是可能的,实际上非常简单,但我是咕噜咕噜和量角器的新手,我无法在网上找到答案(也许我使用了错误的搜索条件).

我在文件中有以下e2e测试test/e2e/Recipients.js:

describe('Recipients Tab', function() {

    beforeEach(function () {
        browser.get('#/recipients');
    });

    it('should have no e-mail list', function () {
        expect(element(by.css('accordion')).isPresent()).toBe(false);
    });
});
Run Code Online (Sandbox Code Playgroud)

目前,我这样做:

grunt e2e
Run Code Online (Sandbox Code Playgroud)

我的量角器配置文件:

exports.config = {
    seleniumAddress: 'http://localhost:4444/wd/hub',
    capabilities: {
        'browserName': 'chrome'
    },
    specs: ['../e2e/**/*.js'],
    baseUrl : 'http://localhost:8080/spr',

    jasmineNodeOpts: {
        showColors: true // Use colors in the command line report.
    }
};
Run Code Online (Sandbox Code Playgroud)

当然这会运行我所有的测试,但是当我正在开发一个特定的测试时,我不想运行整个测试.我想运行这个文件.

我怎样才能做到这一点?有旗帜还是什么?

谢谢

ale*_*cxe 9

或者,将测试组织为一组测试套件:

exports.config = {
  seleniumAddress: 'http://localhost:4444/wd/hub',
  capabilities: { 'browserName': 'chrome' },

  suites: {
    homepage: 'tests/e2e/homepage/**/*Spec.js',
    search: ['tests/e2e/contact_search/**/*Spec.js']
  },

  jasmineNodeOpts: { showColors: true }
};
Run Code Online (Sandbox Code Playgroud)

并使用--suite命令行参数仅运行特定的测试套件:

protractor protractor.conf.js --suite homepage
Run Code Online (Sandbox Code Playgroud)

另请参见:AngularJS的量角器.


JB *_*zet 7

您只需将specs选项传递给量角器CLI即可.specs选项需要运行以逗号分隔的JS文件列表.

您需要编辑Gruntfile.js以将此选项传递给量角器.

  • grunt e2e --specs ='js/test/e2e/PreviewSpec.js'适合我.谢谢 (7认同)