2013-09-06 7 views
1

Я пишу e2e тесты для своего веб-приложения и застреваю в самом начале. Я был бы признателен за любую помощь, чтобы начать мой опыт тестирования.тестирование e2e в angularjs для навигации по страницам

Я совершенно новый для angularjs. Поэтому, пожалуйста, медведь со мной.

Я хочу написать тест, который будет проверять, находимся ли мы на целевой странице приложения. Я использую жасмин и карму.

вот мой конфигурационный файл конфигурации // Карма

module.exports = function(config) { 
     config.set({ 
    // base path, that will be used to resolve files and exclude 
     basePath: '../', 
    // frameworks to use 
     frameworks: ['jasmine'], 


     // list of files/patterns to load in the browser 
     files: [ 
      'source/assets/vendor/angular/angular.js', 
      'test/lib/angular-mocks.js', 
      'test/scripts/**/*.js', 
      'test/unit/**/*.js', 
      'test/e2e/**/*.js' 
     ], 


     // list of files to exclude 
     exclude: [ 

     ], 


     // test results reporter to use 
     // possible values: 'dots', 'progress', 'junit', 'growl', 'coverage' 
     reporters: ['progress'], 


     // web server port 
     port: 9876, 


     // enable/disable colors in the output (reporters and logs) 
     colors: true, 


     // level of logging 
     // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG 
     logLevel: config.LOG_INFO, 


     // enable/disable watching file and executing tests whenever any file changes 
     autoWatch: true, 


     // Start the browser, currently available: 
     browsers: ['Chrome'], 


     // If browser does not capture in given timeout [ms], kill it 
     captureTimeout: 60000, 


     // Continuous Integration mode 
     // if true, it capture browsers, run tests and exit 
     singleRun: false 
     }); 
    }; 

мой mainscenario.js файл.

 describe('appName', function() { 

      beforeEach(function() { 
       browser().navigateTo('../../source/views/home/landing.html'); 
      }); 


      it('should automatically redirect to landing page when location hash/fragment is empty', function() { 
       expect(browser().location().url()).toBe("/landing"); 
      }); 

Ну, я не могу опубликовать снимок экрана об ошибке, так как ему нужна 10 репутации. Но вот описание.

AngularJS: Scenario Test Runner1 Errors0 Failures0 Passed 
    describe: appName 
    165ms should automatically redirect to landing page when location hash/fragment is empty 
    118ms browser navigate to '../../source/views/home/landing.html' 
    8ms $location.url() 
    http://localhost:8000/test/e2e/mainscenario.js:9:16 

    TypeError: Object [object Object] has no method 'injector' 
     at Object.<anonymous> (http://localhost:8000/test/lib/angular-scenario.js:27230:30) 
     ...........blah blah 

Заранее спасибо.

+0

Если вы собираетесь E2E испытаний в угловом, используйте транспортир. Это упростит вашу жизнь. – Sulthan

ответ

0

Необходимо проверить, работает ли ваш веб-сервер и что работает карма. Посмотрите на эту статью, это помогло мне: http://blog.diniscruz.com/2013/06/a-small-angularjs-jasmine-test-executed.html

Кроме того, мой karma-e2e.conf.js выглядит следующим образом:

module.exports = function(config) { 
     config.set({ 
      basePath: '../', 
      plugins: ['karma-ng-scenario', 'karma-jasmine', 'karma-chrome-launcher','karma-html2js-preprocessor'], 
      frameworks: ['ng-scenario'], 

Обратите внимание, что я использую 'ng-scenario' в рамках.

Надеюсь, это поможет.

0

Похоже, что неправильный порядок загрузки пакетов.

загрузка Попробуйте все библиотеки первой затем загрузить app.js, а затем ваши controllers, dir с, и т.д.