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

Angularjs 量角器-作为移动设备运行特定测试,angularjs,protractor,angularjs-e2e,e2e-testing,Angularjs,Protractor,Angularjs E2e,E2e Testing,我有一个功能,它对移动web/桌面有不同的作用。“我的媒体查询”在设备宽度上运行,例如: @仅媒体屏幕和(最大设备宽度:1024px){ ... } 这意味着我不能只更改浏览器大小(它将不起作用): browser.manage().window().setSize(320480)//不会受“设备大小”媒体查询的影响 我找到了一个选项来更改设备功能上的chromeOptions。我尝试将此功能与多电容器一起使用: 'use strict'; var config = require('in

我有一个功能,它对移动web/桌面有不同的作用。“我的媒体查询”在设备宽度上运行,例如:

@仅媒体屏幕和(最大设备宽度:1024px){
... 
}

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

browser.manage().window().setSize(320480)//不会受“设备大小”媒体查询的影响

我找到了一个选项来更改设备功能上的
chromeOptions
。我尝试将此功能与
多电容器一起使用

'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
选项),但它们都将在移动/非移动浏览器上运行所有测试。我需要测试手机测试只在手机上运行,而在普通浏览器上运行所有其他测试

  • 在测试过程中,我是否有一种程序化的方法来实现这一点(而不是使用配置)

  • 我当前的配置有什么问题?为什么
    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;