2

我正在关注关于将选项传递给 Hspec 的hspec 文档。当从命令行传递时,指定我的选项按预期工作,但从.hspec文件或任何其他列出的方法传递时不会。

我的测试套件中的一项测试与过滤器“post_returns_200”匹配。我可以单独运行此测试,而无需通过命令运行套件的其余部分

stack test --test-arguments=--match="post_returns_200"

链接的 hspec 文档显示,我不仅应该能够从命令行指定此过滤器,而且还可以:从.hspec文件、内部ghci或环境变量。但是,当我按照文档通过其他方法之一指定我的过滤器时,我收到“无法识别的选项”错误。例如,当我.hspec通过

$ echo --match="post_returns_200">>.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=”,但在这一点上我完全被难住了。关于为什么该选项在通过命令行指定但无法被其他方法识别时正常工作的任何建议?

4

1 回答 1

1

由于某种原因,我忽略了,hspec 在命令行和配置文件中识别出一组不同的选项。

到目前为止,显式命令行参数(通过--test-arguments使用堆栈时)是传递--match给 hspec 的唯一方法。


从 2.4.4 的源代码(在当前活动分支上发生了很大变化,但它仍然不允许你想要什么):

于 2017-09-08T01:39:32.233 回答