Protractor 查找未作为集合标记列表的一部分运行的测试

Protractor 查找未作为集合标记列表的一部分运行的测试,protractor,cucumber,cucumberjs,Protractor,Cucumber,Cucumberjs,我正在CucumberJS中寻找一种方法来报告哪些测试没有作为特定运行的一部分执行 例如: 如果我的标记是['@E2E','~@higherEnvOnly'],我希望报告哪些测试由于~@higherEnvOnly标记而被排除 我已经能够获得每个功能下的所有功能和场景的列表,以及标签和名称。我想知道是否有一份报告可以给我排除的测试 为了提供更多的视角,之所以需要测试,是因为不可能每次都运行同一组测试,因为要包含(或排除)的功能列表是根据应用程序配置(特定于我们运行测试的每个环境)动态确定的。因此,

我正在CucumberJS中寻找一种方法来报告哪些测试没有作为特定运行的一部分执行

例如: 如果我的标记是
['@E2E','~@higherEnvOnly']
,我希望报告哪些测试由于
~@higherEnvOnly
标记而被排除

我已经能够获得每个功能下的所有功能和场景的列表,以及标签和名称。我想知道是否有一份报告可以给我排除的测试


为了提供更多的视角,之所以需要测试,是因为不可能每次都运行同一组测试,因为要包含(或排除)的功能列表是根据应用程序配置(特定于我们运行测试的每个环境)动态确定的。因此,找出每个环境中运行了哪些测试以及排除了哪些测试对我们来说很重要。

在我的案例中,我使用了
量角器Beauty reporter
它报告所有案例失败并注销消息(原因)。

我能够通过不将要排除的标记传递到
specs
属性中来解决这个问题,而是使用
Before
钩子来验证当前场景标记是否与排除的标记匹配。样本:

在我的配置中:

base.config.cucumberOpts.specs = ['@E2E'];
在hooks.ts
中:

var excludedTag = '@tagToExclude';
Before((scenario) => {
  var excludeScenario = false;
  scenario.pickle.tags.forEach(currTag => {
    if (currTag.name === excludedTag) {
      excludeScenario = true;
      break;
    }
  }
  return excludeScenario ? 'skipped' : '';
});

这确保报告实际显示
@tagToExclude
跳过的

这并没有解决如何报告未执行的测试的问题。如果该报告人确实包含了有关遗漏测试的信息,请以何种方式包含遗漏测试的详细信息。您的回答中没有任何信息表明这一点。你能提供一些关于遗漏测试的详细信息吗?