我正在跟踪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=",但在这一点上我完全感到困惑。如果通过命令行指定该选项,但其他方法无法识别,对于该选项为什么工作正常有任何建议吗?
发布于 2017-09-08 01:39:32
由于某些原因,hspec在命令行和配置文件中识别了一组不同的选项。
到目前为止,显式命令行参数(在使用堆栈时通过--test-arguments )是将--match传递给hspec的唯一方法。
来自2.4.4的源代码(在当前的活动分支上已经发生了很大变化,但仍然不允许您想要的东西):
recognizedOptions,包含commandLineOptions (包括--match)和configFileOptions。parseOtherOptions,只使用不包括--match的configFileOptions。https://stackoverflow.com/questions/46106286
复制相似问题