[英]How to run test file after launching server using npm scripts?
我想利用npm script
並嘗試創建一個命令來運行我的 API 測試。 基本上我需要啟動 API 並執行一些 HTTP 請求。 我在 JS 文件中有測試,我們稱它為automatic-test.js
,我想啟動 API,然后運行這些測試。
在我的package.json
,我嘗試了這個調用:
"scripts": {
"start": "node ./bin/www",
"test": "npm start & node test/automatic-test.js"
}
test
命令啟動 API 服務器,但它不運行測試文件。 我嘗試通過&&
, ||
改變&
和;
( 這里),但它沒有使命令行到達命令的第二部分。 我什至嘗試在test
一開始寫start
命令的內容,但問題是一樣的。
我可以找到從測試文件( 這里)啟動服務器的解決方法, require('/route/to/server/file')
,讓test
命令就像node test/automatic-test.js
但我覺得也許我我在作弊。 我應該怎么做才能使這個聲明如我所願?
npm start &/&&/||/; node test/automatic-test.js
節點版本:v10.15.0
NPM 版本:6.4.1
編輯:這些測試是未來真實測試的初稿,只是一堆 HTTP 請求,應該只返回一小部分結果,它們不是正確的測試(評估、摩卡等)
默認情況下,節點不提供直接測試的能力,您必須添加像mocha這樣的包
請遵循文檔。
concurrently
npm 包非常可愛,恕我直言。
它聲稱是“像 npm run watch-js & npm run watch-less 但更好”,並且由於您的問題始於&
綁定命令......
這是package.json
的一個示例:
"test:dev": "concurrently --restart-tries 10 --names rollup,sirv \"rollup --config rollup.test.config.js -w\" \"sirv test --port 3000 --single --dev\"",
它將名稱(“rollup”、“sirv”)打印到輸出中,以便清楚知道哪個進程做了什么。
我無法與已經提到的start-server-and-test
進行比較。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.