apex-code-coverage-transformer 1.7.2-beta.1 → 1.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/lib/commands/apex-code-coverage/transformer/transform.js +2 -2
- package/lib/commands/apex-code-coverage/transformer/transform.js.map +1 -1
- package/lib/helpers/transformTestCoverageReport.js +5 -1
- package/lib/helpers/transformTestCoverageReport.js.map +1 -1
- package/lib/hooks/postrun.js +43 -33
- package/lib/hooks/postrun.js.map +1 -1
- package/messages/transformer.transform.md +2 -6
- package/oclif.manifest.json +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -47,7 +47,7 @@ USAGE
|
|
|
47
47
|
$ sf apex-code-coverage transformer transform -j <value> -x <value> -c <value> [--json]
|
|
48
48
|
|
|
49
49
|
FLAGS
|
|
50
|
-
-j, --coverage-json=<value> Path to the code coverage JSON file created by the Salesforce CLI deployment command.
|
|
50
|
+
-j, --coverage-json=<value> Path to the code coverage JSON file created by the Salesforce CLI deployment or test command.
|
|
51
51
|
-x, --xml=<value> [default: "coverage.xml"] Path to code coverage XML file that will be created by this plugin.
|
|
52
52
|
-c, --command=<value> [default: "deploy"] The type of Salesforce CLI command you are running. Valid options: "deploy" or "test".
|
|
53
53
|
|
|
@@ -55,7 +55,7 @@ GLOBAL FLAGS
|
|
|
55
55
|
--json Format output as json.
|
|
56
56
|
|
|
57
57
|
DESCRIPTION
|
|
58
|
-
This plugin will convert the code coverage JSON file created by the Salesforce CLI during Apex deployments into an XML accepted by tools like SonarQube.
|
|
58
|
+
This plugin will convert the code coverage JSON file created by the Salesforce CLI during Apex deployments and test runs into an XML accepted by tools like SonarQube.
|
|
59
59
|
|
|
60
60
|
EXAMPLES
|
|
61
61
|
$ sf apex-code-coverage transformer transform -j "coverage.json" -x "coverage.xml" -c "deploy"
|
|
@@ -65,7 +65,7 @@ EXAMPLES
|
|
|
65
65
|
|
|
66
66
|
A post-run hook has been configured if you elect to use it.
|
|
67
67
|
|
|
68
|
-
The post-run hook will automatically transform the code coverage JSON file into a generic test coverage report XML after every Salesforce CLI deployment (`sf project deploy start`, `sf project deploy validate`, `sf project deploy report`, `sf project deploy resume` commands) if the JSON is found.
|
|
68
|
+
The post-run hook will automatically transform the code coverage JSON file into a generic test coverage report XML after every Salesforce CLI deployment (`sf project deploy start`, `sf project deploy validate`, `sf project deploy report`, `sf project deploy resume` commands) and test run (`sf apex run test` command) if the JSON is found.
|
|
69
69
|
|
|
70
70
|
The hook requires you to create this file in the root of your repo: `.apexcodecovtransformer.config.json`
|
|
71
71
|
|
|
@@ -93,12 +93,12 @@ Warning: The file name AccountTrigger was not found in any package directory.
|
|
|
93
93
|
|
|
94
94
|
Files not found in any package directory will not be added to the coverage XML. This includes Apex classes that originate from installed managed and unlocked packages when running all tests in your org.
|
|
95
95
|
|
|
96
|
-
If none of the files listed in the coverage JSON were found in a package directory, the plugin will
|
|
96
|
+
If none of the files listed in the coverage JSON were found in a package directory, the plugin will print an additional warning stating no files were processed. In this case, the coverage XML generated will be an empty file.
|
|
97
97
|
|
|
98
98
|
```
|
|
99
99
|
Warning: The file name AccountTrigger was not found in any package directory.
|
|
100
100
|
Warning: The file name AccountProfile was not found in any package directory.
|
|
101
|
-
|
|
101
|
+
Warning: None of the files listed in the coverage JSON were processed. The coverage XML will be empty.
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
If the `sfdx-project.json` file was not found in your repository's root folder, the plugin will fail with:
|
|
@@ -115,7 +115,7 @@ Error (1): ENOENT: no such file or directory: {packageDirPath}
|
|
|
115
115
|
|
|
116
116
|
## Example
|
|
117
117
|
|
|
118
|
-
This [code coverage JSON file](https://raw.githubusercontent.com/mcarvin8/apex-code-coverage-transformer/main/test/
|
|
118
|
+
This [code coverage JSON file](https://raw.githubusercontent.com/mcarvin8/apex-code-coverage-transformer/main/test/deploy_coverage_no_file_exts.json) created during a Salesforce CLI deployment will be transformed into:
|
|
119
119
|
|
|
120
120
|
```xml
|
|
121
121
|
<?xml version="1.0"?>
|
|
@@ -63,10 +63,10 @@ export default class TransformerTransform extends SfCommand {
|
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
65
|
if (filesProcessed === 0) {
|
|
66
|
-
this.
|
|
66
|
+
this.warn('None of the files listed in the coverage JSON were processed. The coverage XML will be empty.');
|
|
67
67
|
}
|
|
68
68
|
await writeFile(xmlFilePath, xmlData);
|
|
69
|
-
this.log(`The XML
|
|
69
|
+
this.log(`The coverage XML has been written to ${xmlFilePath}`);
|
|
70
70
|
return { path: xmlFilePath };
|
|
71
71
|
}
|
|
72
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../src/commands/apex-code-coverage/transformer/transform.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../src/commands/apex-code-coverage/transformer/transform.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAClG,OAAO,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAC;AAE9F,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,gCAAgC,EAAE,uBAAuB,CAAC,CAAC;AAMlG,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,SAAqC;IAC9E,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5D,MAAM,CAAU,KAAK,GAAG;QAC7B,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,6BAA6B,CAAC;YAC3D,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;SACb,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC;YACd,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;YACjD,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,cAAc;SACxB,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;YACrD,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;SAC5B,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAEvD,IAAI,OAAe,CAAC;QACpB,IAAI,QAAQ,GAAa,EAAE,CAAC;QAC5B,IAAI,cAAc,GAAW,CAAC,CAAC;QAC/B,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAuB,CAAC;YAChE,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,YAAY,CAAC,CAAC;YAC/D,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;YACrB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC3B,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAuB,CAAC;YAChE,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC,YAAY,CAAC,CAAC;YACjE,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;YACrB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC3B,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QACzC,CAAC;QAED,wBAAwB;QACxB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAC;QAC7G,CAAC;QAED,MAAM,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,wCAAwC,WAAW,EAAE,CAAC,CAAC;QAChE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC/B,CAAC"}
|
|
@@ -13,7 +13,11 @@ export async function transformTestCoverageReport(testCoverageData) {
|
|
|
13
13
|
testCoverageData = [testCoverageData];
|
|
14
14
|
}
|
|
15
15
|
for (const data of testCoverageData) {
|
|
16
|
-
const
|
|
16
|
+
const name = data?.name;
|
|
17
|
+
const lines = data?.lines;
|
|
18
|
+
if (!name || !lines) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
17
21
|
const formattedFileName = name.replace(/no-map[\\/]+/, '');
|
|
18
22
|
const relativeFilePath = await findFilePath(formattedFileName, packageDirectories, repoRoot);
|
|
19
23
|
if (relativeFilePath === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformTestCoverageReport.js","sourceRoot":"","sources":["../../src/helpers/transformTestCoverageReport.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,qCAAqC;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,gBAAoC;IAEpC,MAAM,WAAW,GAAmB,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;IAChF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,cAAc,GAAW,CAAC,CAAC;IAC/B,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAEvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,
|
|
1
|
+
{"version":3,"file":"transformTestCoverageReport.js","sourceRoot":"","sources":["../../src/helpers/transformTestCoverageReport.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,qCAAqC;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,gBAAoC;IAEpC,MAAM,WAAW,GAAmB,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;IAChF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,cAAc,GAAW,CAAC,CAAC;IAC/B,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAEvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,CAAC;QAE1B,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,SAAS;QACX,CAAC;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QAC7F,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,iBAAiB,0CAA0C,CAAC,CAAC;YAC5F,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAe;YAC1B,OAAO,EAAE,mBAAmB,CAAC,gBAAgB,CAAC;YAC9C,WAAW,EAAE,EAAE;SAChB,CAAC;QAEF,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;gBACvB,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC;gBACjC,UAAU,EAAE,GAAG,SAAS,KAAK,CAAC,EAAE;aACjC,CAAC,CAAC;QACL,CAAC;QACD,cAAc,EAAE,CAAC;QACjB,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AAC3C,CAAC"}
|
package/lib/hooks/postrun.js
CHANGED
|
@@ -5,40 +5,50 @@ import { resolve } from 'node:path';
|
|
|
5
5
|
import { simpleGit } from 'simple-git';
|
|
6
6
|
import TransformerTransform from '../commands/apex-code-coverage/transformer/transform.js';
|
|
7
7
|
export const postrun = async function (options) {
|
|
8
|
+
let commandType;
|
|
8
9
|
if (['project:deploy:validate', 'project:deploy:start', 'project:deploy:report', 'project:deploy:resume'].includes(options.Command.id)) {
|
|
9
|
-
|
|
10
|
-
const gitOptions = {
|
|
11
|
-
baseDir: process.cwd(),
|
|
12
|
-
binary: 'git',
|
|
13
|
-
maxConcurrentProcesses: 6,
|
|
14
|
-
trimmed: true,
|
|
15
|
-
};
|
|
16
|
-
const git = simpleGit(gitOptions);
|
|
17
|
-
const repoRoot = (await git.revparse('--show-toplevel')).trim();
|
|
18
|
-
const configPath = resolve(repoRoot, '.apexcodecovtransformer.config.json');
|
|
19
|
-
try {
|
|
20
|
-
const jsonString = await readFile(configPath, 'utf-8');
|
|
21
|
-
configFile = JSON.parse(jsonString);
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
const coverageJson = configFile.coverageJsonPath || '.';
|
|
27
|
-
const coverageXml = configFile.coverageXmlPath || 'coverage.xml';
|
|
28
|
-
if (coverageJson.trim() === '.') {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
const coverageJsonPath = resolve(coverageJson);
|
|
32
|
-
const coverageXmlPath = resolve(coverageXml);
|
|
33
|
-
if (!existsSync(coverageJsonPath)) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
const commandArgs = [];
|
|
37
|
-
commandArgs.push('--coverage-json');
|
|
38
|
-
commandArgs.push(coverageJsonPath);
|
|
39
|
-
commandArgs.push('--xml');
|
|
40
|
-
commandArgs.push(coverageXmlPath);
|
|
41
|
-
await TransformerTransform.run(commandArgs);
|
|
10
|
+
commandType = 'deploy';
|
|
42
11
|
}
|
|
12
|
+
else if (['apex:run:test'].includes(options.Command.id)) {
|
|
13
|
+
commandType = 'test';
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
let configFile;
|
|
19
|
+
const gitOptions = {
|
|
20
|
+
baseDir: process.cwd(),
|
|
21
|
+
binary: 'git',
|
|
22
|
+
maxConcurrentProcesses: 6,
|
|
23
|
+
trimmed: true,
|
|
24
|
+
};
|
|
25
|
+
const git = simpleGit(gitOptions);
|
|
26
|
+
const repoRoot = (await git.revparse('--show-toplevel')).trim();
|
|
27
|
+
const configPath = resolve(repoRoot, '.apexcodecovtransformer.config.json');
|
|
28
|
+
try {
|
|
29
|
+
const jsonString = await readFile(configPath, 'utf-8');
|
|
30
|
+
configFile = JSON.parse(jsonString);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const coverageJson = configFile.coverageJsonPath || '.';
|
|
36
|
+
const coverageXml = configFile.coverageXmlPath || 'coverage.xml';
|
|
37
|
+
if (coverageJson.trim() === '.') {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const coverageJsonPath = resolve(coverageJson);
|
|
41
|
+
const coverageXmlPath = resolve(coverageXml);
|
|
42
|
+
if (!existsSync(coverageJsonPath)) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const commandArgs = [];
|
|
46
|
+
commandArgs.push('--coverage-json');
|
|
47
|
+
commandArgs.push(coverageJsonPath);
|
|
48
|
+
commandArgs.push('--xml');
|
|
49
|
+
commandArgs.push(coverageXmlPath);
|
|
50
|
+
commandArgs.push('--command');
|
|
51
|
+
commandArgs.push(commandType);
|
|
52
|
+
await TransformerTransform.run(commandArgs);
|
|
43
53
|
};
|
|
44
54
|
//# sourceMappingURL=postrun.js.map
|
package/lib/hooks/postrun.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postrun.js","sourceRoot":"","sources":["../../src/hooks/postrun.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAA+B,MAAM,YAAY,CAAC;AACpE,OAAO,oBAAoB,MAAM,yDAAyD,CAAC;AAG3F,MAAM,CAAC,MAAM,OAAO,GAAoB,KAAK,WAAW,OAAO;IAC7D,IACE,CAAC,yBAAyB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAC5G,OAAO,CAAC,OAAO,CAAC,EAAE,CACnB,EACD,CAAC;QACD,IAAI,UAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"postrun.js","sourceRoot":"","sources":["../../src/hooks/postrun.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAA+B,MAAM,YAAY,CAAC;AACpE,OAAO,oBAAoB,MAAM,yDAAyD,CAAC;AAG3F,MAAM,CAAC,MAAM,OAAO,GAAoB,KAAK,WAAW,OAAO;IAC7D,IAAI,WAAmB,CAAC;IACxB,IACE,CAAC,yBAAyB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAC5G,OAAO,CAAC,OAAO,CAAC,EAAE,CACnB,EACD,CAAC;QACD,WAAW,GAAG,QAAQ,CAAC;IACzB,CAAC;SAAM,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1D,WAAW,GAAG,MAAM,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,OAAO;IACT,CAAC;IACD,IAAI,UAAsB,CAAC;IAC3B,MAAM,UAAU,GAA8B;QAC5C,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;QACtB,MAAM,EAAE,KAAK;QACb,sBAAsB,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI;KACd,CAAC;IAEF,MAAM,GAAG,GAAc,SAAS,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChE,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,qCAAqC,CAAC,CAAC;IAE5E,IAAI,CAAC;QACH,MAAM,UAAU,GAAW,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC/D,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAe,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAW,UAAU,CAAC,gBAAgB,IAAI,GAAG,CAAC;IAChE,MAAM,WAAW,GAAW,UAAU,CAAC,eAAe,IAAI,cAAc,CAAC;IAEzE,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE7C,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACnC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAClC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9B,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9B,MAAM,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC9C,CAAC,CAAC"}
|
|
@@ -4,7 +4,7 @@ Transforms the Code Coverage JSON into the Generic Test Coverage Format (XML).
|
|
|
4
4
|
|
|
5
5
|
# description
|
|
6
6
|
|
|
7
|
-
This plugin will convert the code coverage JSON file created by the Salesforce CLI during Apex deployments into an XML accepted by tools like SonarQube.
|
|
7
|
+
This plugin will convert the code coverage JSON file created by the Salesforce CLI during Apex deployments and test runs into an XML accepted by tools like SonarQube.
|
|
8
8
|
|
|
9
9
|
# examples
|
|
10
10
|
|
|
@@ -12,11 +12,7 @@ This plugin will convert the code coverage JSON file created by the Salesforce C
|
|
|
12
12
|
|
|
13
13
|
# flags.coverage-json.summary
|
|
14
14
|
|
|
15
|
-
Path to the code coverage JSON file created by the Salesforce CLI deployment command.
|
|
16
|
-
|
|
17
|
-
# flags.xml.summary
|
|
18
|
-
|
|
19
|
-
Path to code coverage XML file that will be created by this plugin.
|
|
15
|
+
Path to the code coverage JSON file created by the Salesforce CLI deployment or test command.
|
|
20
16
|
|
|
21
17
|
# flags.xml.summary
|
|
22
18
|
|
package/oclif.manifest.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"apex-code-coverage:transformer:transform": {
|
|
4
4
|
"aliases": [],
|
|
5
5
|
"args": {},
|
|
6
|
-
"description": "This plugin will convert the code coverage JSON file created by the Salesforce CLI during Apex deployments into an XML accepted by tools like SonarQube.",
|
|
6
|
+
"description": "This plugin will convert the code coverage JSON file created by the Salesforce CLI during Apex deployments and test runs into an XML accepted by tools like SonarQube.",
|
|
7
7
|
"examples": [
|
|
8
8
|
"`sf apex-code-coverage transformer transform -j \"coverage.json\" -x \"coverage.xml\" -c \"deploy\"`"
|
|
9
9
|
],
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"char": "j",
|
|
20
20
|
"name": "coverage-json",
|
|
21
21
|
"required": true,
|
|
22
|
-
"summary": "Path to the code coverage JSON file created by the Salesforce CLI deployment command.",
|
|
22
|
+
"summary": "Path to the code coverage JSON file created by the Salesforce CLI deployment or test command.",
|
|
23
23
|
"hasDynamicHelp": false,
|
|
24
24
|
"multiple": false,
|
|
25
25
|
"type": "option"
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
]
|
|
78
78
|
}
|
|
79
79
|
},
|
|
80
|
-
"version": "1.7.
|
|
80
|
+
"version": "1.7.3"
|
|
81
81
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "apex-code-coverage-transformer",
|
|
3
3
|
"description": "Transforms the Apex code coverage JSON created during Salesforce deployments into the Generic Test Coverage Format (XML).",
|
|
4
|
-
"version": "1.7.
|
|
4
|
+
"version": "1.7.3",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@oclif/core": "^3.18.1",
|
|
7
7
|
"@salesforce/core": "^6.4.7",
|