我正在使用rackunit编写单元测试,并通过命令raco test .使用raco运行它们,该命令递归地查找并执行它们,包括根本不包含单元测试的文件。它只运行所有的东西。
根据我所研究的,在racket中编写单元测试的惯用方法是在实现文件中编写测试模块,而不是为它们单独创建一个文件。问题是,我有多个相同规范的不同实现,它们共享相同的单元测试,因此我需要将所有实现导入到一个单独的文件中,并在那里运行单元测试。
因此,我最后只得到了几个单元测试文件,还有很多不包含单元测试的racket文件,但是raco test最终还是扫描了所有的东西。
我正在寻找一种使用raco test只运行名称中有特定模式的文件的方法。如*.test.rkt、*.spec.rkt、test-*.rkt或类似的(如用于js的jest或用于python的pytest )。
这个是可能的吗?
我在test-include-paths文件中查看了info.rkt,但它似乎是针对那些不是racket文件的文件,而不是用于白名单哪些文件要运行。
发布于 2022-08-27 21:33:46
如果使用bash、zsh或ksh93作为shell,则可以使用递归glob查找所有匹配的文件:
raco test **/*.test.rkt(bash可能首先需要一个shopt -s globstar )
或任何Unix系统:
find . -name "*.test.rkt" -exec raco test \{\} +https://stackoverflow.com/questions/73514537
复制相似问题