0

我有一个组织,它有大约 530 个测试类。我目前正在开发一个 nodejs 项目,该项目使用 sfdx 命令在组织中运行测试,然后生成代码覆盖率报告,分析和分类它们,以便我可以使用分类数据查找哪些测试类/方法涵盖了哪些顶级类行。

由于测试类的数量非常大,如果记录超过 10K,salesforce 会删除覆盖率数据(这是因为类、触发器和测试类的数量如此之多),我试图实现要运行的批量测试。

假设该批次由 Test_1、Test_2、.....、Test_10 组成。我正在使用的命令如下所示。

sfdx force:apex:test:run --codecoverage -r json --classnames "Test_1,Test_2,.....,Test_10" -u testOrg --outputdir path/to/folder

这里的问题是

  1. command 会阻止脚本,直到测试完成并计算整体覆盖率。
  2. 完成后不返回 testRunId。
  3. 每次后续运行时,先前的测试覆盖率数据也包含在不需要的输出中。

无论如何运行命令,以便仅为批处理中包含的测试提供覆盖率数据?

4

2 回答 2

0

尝试将其分离为多命令,您将通过这种方式获得什么?

  1. 每次为小单元锁定脚本
  2. 结果可以单独存储和分析每个类测试

3. 先前的测试覆盖率数据不包含在输出中。每个命令计算其测试代码覆盖率

 sfdx force:apex:test:run --codecoverage -r json --classnames "Test_1" -u testOrg --outputdir path/to/folder/Test_1

sfdx force:apex:test:run --codecoverage -r json --classnames "Test_2" -u testOrg --outputdir path/to/folder/Test_2

sfdx force:apex:test:run --codecoverage -r json --classnames "Test_10" -u testOrg --outputdir path/to/folder/Test_10
于 2021-01-11T00:03:11.537 回答
0

不知道它是否仍然相关,但有一个解决方案。

您可以覆盖 SFDX_MAX_QUERY_LIMIT 环境变量的值并检索您需要的所有记录。
来自https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_dev_cli_env_variables.htm:SFDX_MAX_QUERY_LIMIT
CLI命令
返回的最大 Salesforce 记录数。
默认值为 10,000。
示例:
SFDX_MAX_QUERY_LIMIT=200000

于 2022-02-09T06:55:05.807 回答