На самом деле это не проблема, но я не совсем понимаю, что произошло и почему.
У меня есть этот бегунок для теста. Я тестирую приложение React.
let testcafe = null
const isCiEnv = process.env.CI === 'true'
const exit = async err => {
console.log('Exiting...')
if (testcafe) {
console.log('Closing TestCafe...')
testcafe.close()
}
console.log('Exiting process...')
process.exit(err ? 1 : 0)
}
console.log('Is CI ENV: ', isCiEnv)
console.log('Creating TestCafe...')
createTestCafe('localhost', 1337, 1338)
.then(tc => {
testcafe = tc
})
.then(() => {
console.log('Starting server...')
return startServer()
})
.then(() => {
console.log('Starting client...')
return startClient()
})
.then(() => {
console.log('Creating TestCafe Runner...')
return testcafe.createRunner()
})
.then(runner => {
console.log('About to start TestCafe Runner...')
return runner
.src([
'test/e2e/fixtures/auth.js'
])
.browsers({
path: isCiEnv
? '/usr/bin/chromium-browser'
: 'Chrome',
cmd: isCiEnv
? '--no-sandbox --disable-gpu'
: undefined
})
.screenshots('screenshots', true)
.run({
skipJsErrors: true,
selectorTimeout: 25000,
assertionTimeout: 25000
})
})
.then(failedCount => {
console.log('failed count:', failedCount)
return exit(failedCount)
})
.catch(err => {
console.error('ERR', err)
return exit(err)
})
В package.json у меня есть эта команда для запуска теста
"test:e2e": "HOST=0.0.0.0 NODE_ENV=test NODE_PATH=server babel-node test/e2e/index.js --presets stage-2"
Но в локальной среде я запускаю тест с помощью этой команды
sudo REDIS_HOST=127.0.0.1 PORT=80 yarn test:e2e
Это потому, что на моем локальном компьютере у меня другая конфигурация, и я не хочу менять ее для всех остальных.
Обычно тест запускается в другой, чистой версии браузера, без каких-либо данных учетной записи, плагинов и т. Д. Но в этом случае тесты запускаются в новом окне браузера, но со всеми плагинами и именем моей учетной записи. Но у него нет данных cookie и аутентификации сеанса из окна браузера, в котором я обычно работаю (потому что я авторизовался на сайте в рабочем браузере и не аутентифицируется в тестовом браузере).
И если я изменю "Chrome" на "chrome", он полностью перестанет работать. Такое же поведение для Firefox и Safari.
Ранее, без передачи REDIS_HOST и HOST, он работал как обычно и запускался в новом чистом окне браузера.
Это не большая проблема, по крайней мере, на данный момент, но это неожиданное поведение, и я не понимаю, почему это так работает.
Я не очень знаком с Node и React, и, возможно, это связано с ними.
Спецификация: macOS 10.12.5, Testcafe 0.20.3, Chrome 67