Как запустить локальный сервер и открыть его в браузере из скрипта оболочки

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

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

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

2 ответа

Решение

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

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

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

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

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

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

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

Другие вопросы по тегам