我正在编写一个量角器测试套件,我想在不同的操作系统平台上执行它们。 我在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之间切换时禁用一个并启用其他功能。 我想要这样做,并启用它们,但根据执行环境激活。 有办法吗?
答案 0 :(得分: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',
]
}));
}
}