我正在關注傳遞選項給Hspec的hspec documentation。從命令行傳遞時指定我的選項按預期工作,但從.hspec
文件或任何其他列出的方法傳遞時不起作用。hspec測試參數可以在命令行上運行,但不能從.hspec文件運行
我的測試套件中的一個測試與過濾器「post_returns_200」匹配。我可以不通過命令運行套件的其餘部分單獨運行這個測試
stack test --test-arguments=--match="post_returns_200"
鏈接的hspec資料顯示,我應該可以指定這個過濾器不僅在命令行中,也:從.hspec
文件,從ghci
或環境變量。然而,當我按照文檔指定我的過濾器時,出現「無法識別的選項」錯誤。舉例來說,當我指定通過
$ echo --match="post_returns_200">>.hspec
在.hspec
文件的選項,然後運行stack test
返回以下
$ stack test
azara-api-0.1.0.0: test (suite: azara-test)
azara-test: unrecognized option `--match="post_returns_200"' in config file /home/matthew/backup/azara_work/platform/api/.hspec
Test suite failure for package azara-api-0.1.0.0
azara-test: exited with: ExitFailure 1
Logs printed to console
當我嘗試通過環境變量或者從ghci的中指定的選項,我得到一個類似的錯誤。我已經嘗試了很多關於如何指定命令的變體,例如有或沒有引號,有和沒有「--test-arguments=
」,但我完全在這一點上難住。有關爲什麼該選項在通過命令行指定時正常工作但其他方法無法識別的任何建議?
你試過簡單的'$ echo --match = post_returns_200> .hspec'嗎? (使用'>'覆蓋文件而不是附加到文件中,否則它將包含'--match ='post_returns_200'''行。) –
@ M.Aroosi是的,試過並得到相同的錯誤。因此,與'.hspec'文件相同的錯誤只包含單行'--match = post_returns_200'。 – mherzl