Как настроить тестирование Codecept E2E с Angular2?

Я новичок в тестировании e2e. Я хотел бы попробовать это с http://codecept.io/angular/

С тех пор как я запустил свое приложение с помощью https://github.com/AngularClass/angular2-webpack-starter Protractor / Jasmine уже работает.

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

вот мой codecept.json:

{
  "tests": "src/app/*_test.js",
  "timeout": 10000,
  "output": "./output",
  "helpers": {
    "Protractor": {
      "url": "http://localhost:3000/",
      "driver": "hosted",
      "browser": "chrome",
      "rootElement": "body"
    }
  },
  "include": {
    "I": "./steps_file.js"
  },
  "bootstrap": false,
  "mocha": {},
  "name": "front"
}

И вот мой тест:

Feature('MyApp');

Scenario('First Test', (I) => {
  I.amOnPage('/#/home');
});

Это журнал ошибок:

MyApp --
 First Test
 • I am on page "/#/home"
 ✖ FAILED in undefinedms

 ✖ "after each" hook: finialize codeceptjs in 0ms

-- FAILURES:

  1) MyApp: First Test:
     Uncaught Error: ECONNREFUSED connect ECONNREFUSED 127.0.0.1:4444

Любая помощь?

2 ответа

Как здесь ответили Невозможно запустить транспортир - ECONNREFUSED connect ECONNREFUSED:

webdriver-manager update

webdriver-manager start --standalone

и это мой codecept.json:

{
  "tests": "src/app/*_test.js",
  "timeout": 10000,
  "output": "./output",
  "helpers": {
    "Protractor": {
      "url": "http://localhost:3000/",
      "driver": "hosted",
      "browser": "chrome",
      "rootElement": "body",
      "useAllAngular2AppRoots": true
    }
  },
  "include": {
    "I": "./steps_file.js"
  },
  "bootstrap": false,
  "mocha": {},
  "name": "front"
}

Обратите внимание на "useAllAngular2AppRoots": true

Вы можете запустить Protractor в прямом режиме - это пропускает сервер webdriver/selenium и подключает помощника Protractor непосредственно к браузеру.

Вам необходимо настроить Protractor, используя "прямой" режим, например так: значение "directConnect" передается самому Protractor, поэтому он также использует прямой режим.

"helpers": {
  "Protractor": {
    "url": "http://localhost:3000/",
    "driver": "direct", 
    "directConnect": true, 
    "browser": "chrome",
    "rootElement": "body",
    "useAllAngular2AppRoots": true
  }  
},
Другие вопросы по тегам