我目前正在构建一个Jenkins管道,该管道每晚将运行数千个测试,然后根据套件中每个文件运行所花费的时间,将我们的测试分为N组,每组将以相同的数量运行时间。这样做的目的是优化白天的构建时间,以便同时并行旋转的所有kubernetes容器同时完成。 (本质上是用于Rspec测试的Pod之间的自动测试分配器)
我当前正在使用--format json
命令运行rspec并将其写入文件。这会将我需要的所有相关信息写到一个json文件中,然后我将阅读该文件并在下一阶段用于创建测试分发配置文件。此问题的输出的相关部分如下所示:
{
"description": "responds with created",
"full_description": "ProgramController POST 'create' when user is logged in when adding a program responds with created",
"status": "passed",
"file_path": "./spec/support/common_api_spec_examples.rb",
"line_number": 29,
"run_time": 0.355501,
"pending_message": null
},
棘手的事情是,虽然'expect'语句位于./spec/support/common_api_spec_examples.rb
中,但实际上并不是测试所在的位置-实际测试位于其他文件中,并通过使用{来调用支持方法rspec的{1}}功能。
如何配置rspec以打印出实际include_examples调用的文件路径/行号,而不是支持规范类的文件路径?那有可能吗?