如何做基于OS Profile的Protractor配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何做基于OS Profile的Protractor配置相关的知识,希望对你有一定的参考价值。

我正在编写一个量角器测试套件,我想在不同的操作系统平台上执行它们。我在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之间切换。我想要这样做,并启用它们,但根据执行环境激活。有办法吗?

答案

处理这个的好方法是在你的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',
      ]
    }));
  }   

}

以上是关于如何做基于OS Profile的Protractor配置的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac OS X Lion 上设置环境变量

在 Linux RedHat OS 中使用 O-Profile => 与 NMI 看门狗冲突

Mac os下profile设置

python os.getenv 看不到 ~/.profile 中定义的变量

如何在Mac OS上设置多个env home变量?

Mac OS X下修改.bash_profile之后source .bash_profile出现“command not found”问题解决