У меня есть приложение Angular v5 и environment.json
файлы для моей среды (например, DEV, Test, Production и т. Д.). Файлы окружения хранятся в каталоге следующим образом: src/Environments/DEV/environment.json
.
Вот пример файла dev environment.json
:
{
"Comment": "Environment=DEV",
"API_ORIGIN": "https://myapp-dev",
"ORIGIN": "https://myapp-dev/index.html",
}
В папке src
есть корневой environment.json
файл, из которого мое приложение читает. Когда я хочу использовать определенную среду, я просто копирую содержимое этой среды в корень и запускаю приложение.
Теперь, с помощью Cucumber и Protractor, есть ли способ передать аргумент командной строки, чтобы указать, какой environment.json
файл использовать в зависимости от моих настроек? У меня есть URL-адреса в этих environment.json
файлах, поэтому мне нужен способ сообщить Cucumber и Protractor, какую среду использовать. Если мне нужно скопировать все environment.json
файлы в папку e2e, это меня устраивает. На всякий случай, решение, которое мне нужно использовать, зависит от инструментов, которые я использую, вот мой tsconfig.e2e.json
файл. Пожалуйста, дайте мне знать, если это неверно:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/e2e",
"baseUrl": "./",
"module": "commonjs",
"target": "es5",
"types": [
"chai",
"cucumber",
"node"
]
}
}
Вот файл protractor.conf.js
. Дайте мне знать, если это неверно, пожалуйста:
// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./e2e/features/**/*.feature'
],
capabilities: {
'browserName': 'chrome'
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'custom',
frameworkPath: require.resolve('protractor-cucumber-framework'),
cucumberOpts: {
// require step definition files before executing features
require: ['./e2e/steps/**/*.ts'],
// <string[]> (expression) only execute the features or scenarios with tags matching the expression
tags: [],
// <string[]> ("extension:module") require files with the given EXTENSION after requiring MODULE (repeatable)
compiler: []
},
// Enable TypeScript for the tests
onPrepare() {
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
}
};
Я также использую npm
, если это важно. Я запускаю эти тесты с помощью команды ng e2e
, предоставленной angular.