【问题标题】:How to do OS Profile based Protractor configuration如何进行基于操作系统配置文件的量角器配置
【发布时间】:2017-12-19 11:24:12
【问题描述】:

我正在编写量角器测试套件,我想在不同的操作系统平台上执行它们。 我在 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】:

    处理此问题的好方法是在您的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',
          ]
        }));
      }   
    
    }
    

    【讨论】:

    • 更新 1:我在我的 Windows 环境中使用了这个配置,它可以工作。感谢您提供急需的解决方案。有没有办法将其拆分到多个配置文件中,然后根据需要使用一个主配置文件来包含它们?
    • 是的,当然。您可以在其自己的文件中设置每个配置,然后使用类似 var reporterConfig = require('path/to/videoreporter.config.js')jasmine.getEnv().addReporter(new VideoReporter(reporterConfig))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 2020-05-06
    • 2011-07-15
    • 2015-03-20
    • 1970-01-01
    • 2017-06-28
    相关资源
    最近更新 更多