Не удается запустить тесты e2e с помощью транспортира: не удается определить путь?

Кажется, я не могу запустить свои тесты e2e с транспортиром. Прежде чем я начну, вот некоторая справочная информация:

Node: 7.7.4
NPM:  4.1.2.
Angular: 4.1.0
Protractor: 5.1.2

После запуска npm install protractor я установил и обновил веб-драйвер и получил обновление для IE. После того, как я написал свой первый тест — простой тест для получения текста тега h1 на моей странице входа — я попытался запустить транспортир и получил ошибку: Error: Cannot find module ‘ts-node’, поэтому я пошел и установил его. Теперь, когда я перезапускаю транспортир, я получаю загадочную ошибку, которую не могу разрешить: the specified path does not exist: e2e/tsconfig.e2e.json. Что это значит? Мой файл транспортира conf.js выглядит так:

// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts

const { SpecReporter } = require('jasmine-spec-reporter');

exports.config = {
  allScriptsTimeout: 11000,
  specs: [ //path of specs is relative to location of protractor.conf.js file. 
    './e2e/**/*.e2e-spec.ts'
  ],
  capabilities: {
      //'browserName': 'chrome' ---default
      'browserName': 'internet explorer',
      'platform': 'ANY',
      'version': '11'
  },
  directConnect: true,
  baseUrl: 'http://localhost:4200/',
  framework: 'jasmine',
  // Options to be passed to Jasmine-node.
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000,
    print: function() {}
  },
  beforeLaunch: function() {
    require('ts-node').register({
      project: 'e2e/tsconfig.e2e.json'
    });
  },
  onPrepare() {
    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
  }
};

Я пытался обмануть путь под параметром проекта, но не повезло с решением проблемы. И структура моего проекта настроена следующим образом:

структура проекта

Какие-либо предложения? Должен ли я опубликовать это как проблему на github? В ц-узел? Или транспортир? Мы ценим любые предложения. Пожалуйста, дайте мне знать, если вам нужен дополнительный контекст.


person jrDeveloper    schedule 10.07.2017    source источник


Ответы (1)


Это означает, что он пытается найти tsconfig.e2e.json (файл конфигурации машинописного текста для вашего проекта «e2e») и не может. Эта часть конфигурации показывает путь, который он ищет:

beforeLaunch: function() {
    require('ts-node').register({
      project: 'e2e/tsconfig.e2e.json'
    });
  },

Но из вашей структуры каталогов ясно, что его там нет. Учитывая путь к вашим файлам спецификаций, я бы предположил, что строка должна выглядеть так:

project: './e2e/tsconfig.e2e.json'

Однако, глядя на структуру вашего проекта, это может быть:

project: './app/e2e/tsconfig.e2e.json'

В этом случае путь к вашим файлам спецификации, вероятно, потребуется изменить, чтобы он соответствовал.

person M. Hudson    schedule 10.07.2017
comment
Благодарю вас! Вот как я прочитал ошибку, и я возился с путем, но безуспешно. Я попробую завтра и приму ваш ответ, если все пойдет хорошо. - person jrDeveloper; 11.07.2017