Как вы можете заставить часы ворчания продолжаться после того, как они наткнулись на кармическую паузу?

Согласно документации Angular.

Добавьте оператор pause() внутри сквозного теста и повторно запустите его. Вы увидите паузу бегуна; это дает вам возможность исследовать состояние вашего приложения, пока оно отображается в браузере. Приложение живо! Вы можете изменить поисковый запрос, чтобы доказать это. Обратите внимание, насколько это полезно для устранения неполадок в сквозных тестах.

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

grunt.registerTask('test:watch', [
    'clean:server',
    'concurrent:server',
    'autoprefixer',
    'connect:livereload',
    'karma:unit',
    'open',
    'karma:e2e',
    'watch'
  ]);

Здесь интересно то, как устроена карма и как устроены часы с кармой, так что ознакомьтесь с ними:

karma: {
  options: {
    configFile: 'karma.conf.js',
  },
  e2e: {        
    singleRun: false,
    background: true,
    configFile: 'karma-e2e.conf.js',
  },
  unit: {
    singleRun: false,
    background: true        
  }
}

и часы выглядят так

watch: {
  karma: {
    files: ['test/**/*.js'],
    tasks: ['karma:unit:run', 'karma:e2e:run']
  }
}

Итак, когда я бегу

хрюкающий тест: смотреть

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

Если вам интересно, у меня есть Scenario Runner, работающий в отдельном браузере, где и пригодится pause(). С этой стороны все работает нормально, и я могу возобновить его в браузере, и все отлично.

Но остается вопрос: как я могу заставить часы продолжать «оценивать» сквозные тесты через консоль bash после того, как они нажмут на паузу ()?


person Joseph    schedule 29.09.2013    source источник
comment
Похоже на аналогичную проблему: stackoverflow.com/questions/20911771/   -  person fidian    schedule 22.07.2014


Ответы (1)


Это не будет популярным ответом, но на данный момент вы бреете яка:

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

Ваша цель — проверить поведение сайта в браузере или проверить поведение кода на тестах. Нет необходимости делать и то, и другое одновременно.

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

На данный момент я удивлен, что вы также не получаете свою грубую задачу, чтобы зафиксировать код, пометить его и отправить в производство! ;)

person Community    schedule 31.07.2014
comment
Я бы сказал, что это определенно два разных опыта, к которым я стремлюсь, но разница в том, что я довольно часто пытаюсь делать их оба одновременно. Я хочу иметь возможность тестировать в браузере и тестировать свой код с помощью бегуна. Это не всегда, но я нашел это очень полезным, когда я пытаюсь что-то построить. Да, а что касается черновой задачи по фиксации кода и т. д., у меня действительно есть задача, которая создает папку дистрибутива, минимизирует, объединяет, фиксирует и отправляет =P - person Joseph; 02.08.2014
comment
@Джозеф только что кое о чем подумал, вы можете запустить сервер как фоновый процесс; grunt server &; grunt tests. Может работать? - person ; 02.08.2014