如何做基于OS Profile的Protractor配置

问题描述 投票:1回答:1

我正在编写一个量角器测试套件,我想在不同的操作系统平台上执行它们。我在Windows上开发,因此我的主要设置是根据Windows设置的,但我的主要执行环境是linux。问题是,在我推送代码之前,我需要注释特定于Windows的设置并启用特定于linux的设置。有没有办法维护这两个设置并根据执行配置文件选择它们?

示例:Windows上视频报告器的设置是 -

jasmine.getEnv().addReporter(new VideoReporter({
  baseDirectory: './test-output/videoreport',
  createSubtitles: false,
  saveSuccessVideos: true,
  singleVideo: true,
  ffmpegCmd: "C:/FFmpeg/bin/ffmpeg.exe",
  ffmpegArgs: [
    '-f', 'gdigrab',
    '-framerate', '30',
    '-video_size', 'wsxga',
    '-i', 'desktop',
    '-q:v', '10',
  ]
}));

而对于linux来说是一样的 -

jasmine.getEnv().addReporter(new VideoReporter({
  baseDirectory: './test-output/videos',
  saveSuccessVideos: true,
  ffmpegCmd: '/usr/local/bin/ffmpeg',
  ffmpegArgs: [
    '-y',
    '-r', '30',
    '-f', 'x11grab',
    '-s', '1280x1024',
    '-i', process.env.DISPLAY,
    '-g', '300',
    '-vcodec', 'mpeg4'
  ]
}));

目前我禁用一个并启用其他我在Windows / Linux之间切换。我想要这样做,并启用它们,但根据执行环境激活。有办法吗?

testing protractor jasmine-node
1个回答
0
投票

处理这个的好方法是在你的onPrepare()。您可以从命令行传入环境标志,并使用onPrepare设置正确的设置。

--params.environment=windows
--params.environment=linux

然后在你的onPrepare你可以做这样的事情:

onPrepare: () => {  

  if(browser.params.environment === "linux") {

    jasmine.getEnv().addReporter(new VideoReporter({
      baseDirectory: './test-output/videos',
      saveSuccessVideos: true,
      ffmpegCmd: '/usr/local/bin/ffmpeg',
      ffmpegArgs: [
        '-y',
        '-r', '30',
        '-f', 'x11grab',
        '-s', '1280x1024',
        '-i', process.env.DISPLAY,
        '-g', '300',
        '-vcodec', 'mpeg4'
      ]
    }));

  } else {

    jasmine.getEnv().addReporter(new VideoReporter({
      baseDirectory: './test-output/videoreport',
      createSubtitles: false,
      saveSuccessVideos: true,
      singleVideo: true,
      ffmpegCmd: "C:/FFmpeg/bin/ffmpeg.exe",
      ffmpegArgs: [
        '-f', 'gdigrab',
        '-framerate', '30',
        '-video_size', 'wsxga',
        '-i', 'desktop',
        '-q:v', '10',
      ]
    }));
  }   

}
© www.soinside.com 2019 - 2024. All rights reserved.