Я сейчас пытаюсь сделать e2e-тест для очень большого приложения Angular, но у меня возникают проблемы с его настройкой.Из-за различных обстоятельств я не могу попытаться интегрировать Angular CLI в проект, поэтому мне приходится обходить его.
мой projectstructur
app
├── e2e
│ ├── tsconfig.e2e.json
│ ├── component.e2e-spec.ts
│ └── pages
│ └── component.page.ts
├── ....
├── protractor.conf.js
└── tsconfig.json
tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"allowJs": true,
"noEmit": true,
"noEmitHelpers": true,
"importHelpers": true,
"strictNullChecks": false,
"lib": [
"dom",
"es6"
]
},
"typeRoots": [
"node_modules/@types"
],
"types": [
"jasmine",
"node",
"source-map",
"uglify-js",
"webpack"
],
"exclude": [
"node_modules",
"!node_modules/@types",
"dist",
"typescript"
],
"awesomeTypescriptLoaderOptions": {
"forkChecker": true,
"useWebpackText": true
},
"compileOnSave": false,
"buildOnSave": false,
"atom": {
"rewriteTsconfig": false
}
}
protractor.conf.ts
const {SpecReporter} = require('jasmine-spec-reporter');
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./e2e/**/*.e2e-spec.ts'
],
capabilities: {
'browserName': 'chrome',
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function () {
}
},
onPrepare() {
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
jasmine.getEnv().addReporter(new SpecReporter({spec: {displayStacktrace: true}}));
}
}
}
tsconfig.e2e.json
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/e2e",
"module": "commonjs",
"target": "es5",
"types": [
"jasmine",
"jasminewd2",
"node"
]
}
}
Я могу запустить свой сервер, используя:
npm run webpack-dev-server -- --config config/webpack.dev.js --open --progress --profile --watch --content-base src/
и когда я пытаюсь запустить тест e2e с:
npm-run-all -p -r server:prod:ci protractor
, я получаю следующее сообщение об ошибке:
Error: C:\Users\xxx\Desktop\app\e2e\component.e2e-spec.ts:1
(function (exports, require, module, __filename, __dirname) { import { ComponentPage} from './pages/component.page';
^^^^^^
SyntaxError: Unexpected token import
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
Я думаю, что возникает ошибка, поскольку файлы .ts не передаютсяto .js ... Так что я думаю, что моя конфигурация или способ, которым я запускаю тесты, неверны.