Запустите другую команду независимо от успеха теста транспортира

Цель: я хочу всегда запускать другой скрипт узла, независимо от того, пройдены все тесты транспортира или нет. Чтобы упростить задачу, я использовал следующую команду:

protractor tests/protractor-config.js ; npm run uitest

Проблема. Вывод приведенной выше команды будет таким:

$ [email protected] e2e E:\IRIS\IRIS\Iris.Cloud\Iris.Web.Portal
$ protractor tests/protractor-config.js ";" "npm" "run" "uitests"
Usage: protractor [configFile] [options]
configFile defaults to protractor.conf.js
The [options] object will override values from the config file.
See the reference config for a full list of options.

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

protractor tests/protractor-config.js && npm run uitest

Он работает так, как ожидалось.

Моя конфигурация Я использовал [email protected].

Кто-нибудь встречался с проблемой раньше. Спасибо!


person Yan Xu    schedule 01.08.2018    source источник


Ответы (1)


Причина protractor tests/protractor-config.js ; npm run uitest отказа заключалась в том, что транспортир принял ; npm run uitest в качестве параметров командного транспортира.

Причина, по которой второй сработал для вас, заключается в том, что тесты пройдены; && -- это оператор AND , поэтому я предполагаю , что если ваши тесты не пройдут , npm run ui tests не запустится . потому что false && <anything else> приведет к ложному результату и не будет оценено.

Пример: ls <non-existent directory && echo2 приведет к ls: <non_existent directory name>: No such file or directory.

Следовательно, если вы хотите запустить задачу независимо от того, проходит protractor tests/protractor-config.js или нет, вы можете взглянуть на https://docs.npmjs.com/misc/scripts.

В частности: тест npm, предварительный тест и посттест.

person Jagannath    schedule 02.08.2018
comment
Спасибо за Ваш ответ! Но чего я до сих пор не понимаю, так это того, почему «&& npm run uitests» не будет использоваться в качестве параметров командного транспортира, как это делается с «; npm запустить uitests'? - person Yan Xu; 03.08.2018
comment
@YanXu Оператор AND (&&) является логическим оператором. Отсюда и описанное выше поведение. Для его указанного поведения вы можете посмотреть документы. - person Jagannath; 12.08.2018