sfdx-force:apex:test:run include coverage仅用于sfdx命令中包含的测试



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

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

假设该批由Test_1、Test_2、…..、,。。。。。,测试_10。下面给出了我正在使用的命令。

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

这里的问题是

  1. 命令阻止脚本,直到测试完成并计算出总覆盖率
  2. 完成后不返回testRunId
  3. 对于每个后续运行,先前的测试覆盖率数据也包含在输出中,这是不需要的

是否可以运行该命令,以便只为批次中包含的测试提供覆盖率数据?

尝试将其分离为多个命令,这样你会得到什么?

  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

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

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

相关内容

  • 没有找到相关文章

最新更新