| description | Reference for the qlt test run execute-unit-tests command |
|---|
Use this prompt to guide the execution of qlt test run execute-unit-tests to run unit tests for CodeQL queries within a repository structure.
qlt test run execute-unit-tests [options]Runs unit tests within a repository based on the current configuration. Executes tests in parallel for specified languages and generates intermediate output files for validation.
--num-threads <num-threads>- Required Number of threads for test execution (default: 4, don't exceed physical cores)--work-dir <work-dir>- Required Directory for intermediate execution output files (default: temp directory)--language <lang>- Required Language to run tests for: c, cpp, csharp, go, java, javascript, python, ruby--runner-os <runner-os>- Required Operating system label for test execution
--codeql-args <codeql-args>- Extra arguments to pass to CodeQL CLI
--base <base>- Base path to find the query repository (default: current directory)--automation-type <actions>- Automation type configuration (required, default: actions)
--development- Enable development mode with special QLT features (required, default: False)--use-bundle- Use custom CodeQL bundle instead of distribution versions (required, default: False)
- Scans the specified language directory for test structures
- Identifies all test directories with expected results
- Discovers queries associated with each test
- Creates execution plan for parallel testing
- Compiles queries for testing
- Creates test databases from source files
- Executes queries against test databases
- Compares results with expected outputs
- Generates execution reports in work directory
qlt test run execute-unit-tests \
--num-threads=4 \
--work-dir=/tmp/test-results \
--language=java \
--runner-os=linux \
--automation-type=actions \
--development=false \
--use-bundle=falseqlt test run execute-unit-tests \
--num-threads=8 \
--work-dir=/tmp/test-results \
--language=javascript \
--runner-os=ubuntu-latest \
--automation-type=actions \
--development=false \
--use-bundle=falseqlt test run execute-unit-tests \
--num-threads=4 \
--work-dir=/tmp/test-results \
--language=python \
--runner-os=macos-latest \
--codeql-args="--ram=8192 --threads=2" \
--automation-type=actions \
--development=false \
--use-bundle=falseqlt test run execute-unit-tests \
--num-threads=2 \
--work-dir=/tmp/test-results \
--language=csharp \
--runner-os=windows-latest \
--automation-type=actions \
--development=true \
--use-bundle=false- CI/CD pipeline quality gates for CodeQL queries
- Bulk testing of multiple queries in a language
- Parallel execution for faster test completion
- Automated validation before deployment
- Development workflow verification
work-dir/
├── test-results/
│ ├── <language>/
│ │ ├── execution-log.txt
│ │ ├── test-summary.json
│ │ └── individual-results/
│ │ ├── query1-results.json
│ │ └── query2-results.json
│ └── metadata/
│ ├── execution-metadata.json
│ └── timing-information.json
- Test discovery progress
- Parallel execution status
- Pass/fail counts per query
- Overall execution summary
- Performance timing information
- Exit code 0 for all tests passing
- Generated result files in work directory
- Summary statistics of test execution
- Exit code 1 for test failures
- Failed test details in result files
- Error logs for compilation or execution issues
- Use physical CPU cores count
- Don't exceed system memory limits
- Consider I/O bound operations for disk-intensive tests
- Large test suites may require additional CodeQL RAM arguments
- Monitor work directory disk usage
- Clean up intermediate files after validation
qlt test run validate-unit-tests- Validate execution resultsqlt query run install-packs- Install dependencies before testingcodeql test run- Individual query testing