【发布时间】:2018-01-11 18:44:27
【问题描述】:
我有一个用于一个非常大的项目(约 3800 个单独的示例)的测试套件,我正在从 RSpec 2.14 更新到 3.6。
我刚刚为 s/be_true/be true/ 运行了全部替换,但其中一些应该改为 be_truthy,而这些规范都失败了。
我可以从 git diff 中提取更改的行 - 只需做一些工作 - 但我需要将这些输入到 RSpec 的 config.filter_run 中,而且它似乎不喜欢我为 locations 过滤器这样做(当您在命令行上指定 rspec path/to/file:line 时激活的那个);它说“All examples were filtered out; ignoring {:locations=>...}”。
我也可以在around 过滤器中example.run unless example.location.in? changed_specs,但这skips 所有其他人并将它们标记为pending,而不是完全忽略它们;它不能与run_all_when_everything_filtered 的其他过滤器协同工作。 (可能是因为example.location 指的是测试的顶行,但变化是在它下面几行。)
而且我似乎也无法使用它向example.metadata 添加标签然后将其过滤掉。
编辑:我也不想在命令行上指定它们,因为我的测试在rerun 下运行,它一直在运行相同的命令。
还有什么想法吗?
【问题讨论】: