如何做基于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配置的主要内容,如果未能解决你的问题,请参考以下文章
在 Linux RedHat OS 中使用 O-Profile => 与 NMI 看门狗冲突
python os.getenv 看不到 ~/.profile 中定义的变量
Mac OS X下修改.bash_profile之后source .bash_profile出现“command not found”问题解决