簡體   English   中英

使用 npm 腳本啟動服務器后如何運行測試文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM