量角器 - 将特定测试作为移动设备运行

时间:2015-11-17 12:38:25

标签: angularjs protractor angularjs-e2e e2e-testing

我的移动网络/桌面功能有所不同。我的媒体查询在设备宽度上运行,例如:

@media only screen and (max-device-width: 1024px) { ... }

这意味着我不能只改变浏览器大小(它不起作用):

browser.manage().window().setSize(320, 480);//will not be affected by 'device-size' media query

我找到了更改chromeOptions设备功能的选项。我尝试将其用于multiCapabilities

'use strict';

var config = require('infra-gruntfile/protractor-conf').config;

// old capabilities
// config.capabilities = {
//   browserName: 'chrome'
// };

config.multiCapabilities =
[
  {
    browserName: 'chrome',
    name: 'Unnamed Job',
    count: 1,
    shardTestFiles: false,
    maxInstances: 10,
    chromeOptions: {
      'mobileEmulation': {
        'deviceName': 'Apple iPhone 4'
      },
      args: [
        'incognito',
        'disable-extensions'
      ]
    },
    loggingPrefs: {
      browser: 'ALL'
    },
    specs: ['app/**/*.mobile.spec.js']
  },
  {
    browserName: 'chrome',
    specs: ['!app/**/*.mobile.spec.js']
  }
]

module.exports.config = config;

看起来specs不起作用(我尝试了不同的spec选项)但是所有这些选项都会在移动/非移动浏览器上运行所有测试。我需要测试移动测试才能在移动设备上运行 ,而在常规浏览器上运行所有其他设备。

  1. 在测试过程中,我是否以编程方式执行此操作(而不使用配置)?

  2. 我目前的配置有什么问题?为什么specs不适合我?

1 个答案:

答案 0 :(得分:2)

阅读this帖后,我发现问题是特定功能的规范另外到主config.specs。

这意味着我必须使用specs: []

删除从我的基础架构配置文件到达的默认值
'use strict';

var config = require('infra-gruntfile/protractor-conf').config;

// old capabilities
// config.capabilities = {
//   browserName: 'chrome'
// };

config.specs = []; //This line solved my problem!

config.multiCapabilities =
[
  {
    browserName: 'chrome',
    name: 'Unnamed Job',
    count: 1,
    shardTestFiles: false,
    maxInstances: 10,
    chromeOptions: {
      'mobileEmulation': {
        'deviceName': 'Apple iPhone 4'
      },
      args: [
        'incognito',
        'disable-extensions'
      ]
    },
    loggingPrefs: {
      browser: 'ALL'
    },
    specs: ['app/**/*.mobile.spec.js']
  },
  {
    browserName: 'chrome',
    specs: ['!app/**/*.mobile.spec.js']
  }
]

module.exports.config = config;