chore: Add --no-suggestion to custom test runner (#9598)

This commit is contained in:
Nikolay Vitkov 2023-01-27 13:20:32 +01:00 committed by GitHub
parent c5068ea2ec
commit 90ef8793ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 58 additions and 39 deletions

View File

@ -38,9 +38,25 @@ npm test
- **Important**: don't forget to first build the code if you're testing local changes:
```bash
npm run build && npm test
npm run build --workspace=@puppeteer-test/test && npm test
```
### CLI options
| Description | Option | Type |
| ----------------------------------------------------------------- | ---------------- | ------- |
| Do not generate coverage report | --no-coverage | boolean |
| Do not generate suggestion for updating TestExpectation.json file | --no-suggestions | boolean |
| Specify a file to which to save run data | --save-stats-to | string |
| Specify a file with a custom Mocha reporter | --reporter | string |
| Number of times to retry failed tests. | --retries | number |
| Timeout threshold value. | --timeout | number |
| Tell Mocha to not run test files in parallel | --no-parallel | boolean |
| Generate full stacktrace upon failure | --fullTrace | boolean |
| Name of the Test suit defined in TestSuites.json | --test-suite | string |
### Helpful information
- To run a specific test, substitute the `it` with `it.only`:
```ts

View File

@ -71,6 +71,7 @@ function getApplicableTestSuites(
async function main() {
const noCoverage = process.argv.indexOf('--no-coverage') !== -1;
const noSuggestions = process.argv.indexOf('--no-suggestions') !== -1;
const statsFilenameIdx = process.argv.indexOf('--save-stats-to');
let statsFilename = '';
@ -209,44 +210,46 @@ async function main() {
fail = true;
console.error(err);
} finally {
const toAdd = recommendations.filter(item => {
return item.action === 'add';
});
if (toAdd.length) {
console.log(
'Add the following to TestExpectations.json to ignore the error:'
);
prettyPrintJSON(
toAdd.map(item => {
return item.expectation;
})
);
}
const toRemove = recommendations.filter(item => {
return item.action === 'remove';
});
if (toRemove.length) {
console.log(
'Remove the following from the TestExpectations.json to ignore the error:'
);
prettyPrintJSON(
toRemove.map(item => {
return item.expectation;
})
);
}
const toUpdate = recommendations.filter(item => {
return item.action === 'update';
});
if (toUpdate.length) {
console.log(
'Update the following expectations in the TestExpecations.json to ignore the error:'
);
prettyPrintJSON(
toUpdate.map(item => {
return item.expectation;
})
);
if (!noSuggestions) {
const toAdd = recommendations.filter(item => {
return item.action === 'add';
});
if (toAdd.length) {
console.log(
'Add the following to TestExpectations.json to ignore the error:'
);
prettyPrintJSON(
toAdd.map(item => {
return item.expectation;
})
);
}
const toRemove = recommendations.filter(item => {
return item.action === 'remove';
});
if (toRemove.length) {
console.log(
'Remove the following from the TestExpectations.json to ignore the error:'
);
prettyPrintJSON(
toRemove.map(item => {
return item.expectation;
})
);
}
const toUpdate = recommendations.filter(item => {
return item.action === 'update';
});
if (toUpdate.length) {
console.log(
'Update the following expectations in the TestExpecations.json to ignore the error:'
);
prettyPrintJSON(
toUpdate.map(item => {
return item.expectation;
})
);
}
}
process.exit(fail ? 1 : 0);
}