У меня есть набор тестов, который работает в браузере (используя QUnit, хотя это неважно). Для набора тестов требуется локальный сервер, работающий на определенном порту. Запуск тестов в настоящее время включает в себя несколько шагов:

  1. node test/server
  2. переключиться на браузер выбора
  3. открыть localhost:3000

Я хотел бы иметь одну команду, которая запускает сервер, а затем запускает open localhost:3000 . В идеале процесс узла должен оставаться на переднем плане, чтобы его можно было убить с помощью ^ C. У меня нет хорошего понимания подоболочек, поэтому я не уверен, возможно ли это.

2 ответа2

1

Если я правильно понимаю, вы хотите:

  • запустить службу node.js
  • запустить браузер
  • посетить сервис в браузере

Сначала запустите браузер после заданной задержки. Затем запустите службу и дайте ей работать на переднем плане. Оператор с двойным амперсандом заставляет команду "next" ждать завершения "первой" команды с кодом 0, тогда как одиночный амперсанд означает "запуск в фоновом режиме". Мы можем использовать это, чтобы купить сервису некоторое время, чтобы прогреться, прежде чем браузер попытается получить к нему доступ.

#!/bin/sh
awhile=3
sleep $awhile && firefox http://localhost:3000/ & 
node netservice.js 

Если это помогает, вы можете рассматривать foo && bar & как асинхронный вызов, который гарантирует, что foo завершится до вызова bar.

0

В инструкциях говорится, чтобы открыть ваш браузер по выбору, как в веб-браузере, а именно Firefox, Chrome, хм ... Internet Explorer.

Шаги 2 и 3 вообще не являются командной строкой. Шаг 3 - вставить localhost:3000 в адресную строку браузера. Вы можете оставить узел работающим в оболочке или добавить '&', который запустит процесс и вернет вас к приглашению.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .