--- title: resolve tests versions: fpt: '*' ghae: '*' ghec: '*' ghes: '*' topics: - Advanced Security - Code scanning - CodeQL type: reference product: '{% data reusables.gated-features.codeql %}' autogenerated: codeql-cli intro: '[Deep plumbing] Find QL unit tests in given directories.' --- {% data reusables.codeql-cli.man-pages-version-note %} ## Synopsis ```shell{:copy} codeql resolve tests ... -- ... ``` ## Description \[Deep plumbing] Find QL unit tests in given directories. This plumbing command is responsible for expanding the command-line parameters of subcommands that run QL unit tests, to an actual list of individual .ql and .qlref files to execute. ## Primary options #### `...` Each argument is one of: * A `.ql` or `.qlref` file that defines a test to run. * A directory which will be searched recursively for tests to run. #### `--slice=` \[Advanced] Divide the test cases into *M* roughly equal-sized slices and process only the *N*th of them. This can be used for manual parallelization of the testing process. #### `--[no-]strict-test-discovery` \[Advanced] Only use queries that can be strongly identified as tests. This mode tries to distinguish between `.ql` files that define unit tests and `.ql` files that are meant to be useful queries. This option is used by tools, such as IDEs, that need to identify all unit tests in a directory tree without depending on previous knowledge of how the files in it are arranged. Within a QL pack whose `qlpack.yml` declares a `tests` directory, all `.ql` files in that directory are considered tests, and `.ql` files outside it are ignored. In a QL pack that doesn't declare a `tests` directory, a `.ql` file is identified as a test only if it has a corresponding `.expected` file. For consistency, `.qlref` files are limited by the same rules as `.ql` files even though a `.qlref` file cannot really be a non-test. #### `--format=` Select output format, either `text` *(default)* or `json`. ### Common options #### `-h, --help` Show this help text. #### `-J=` \[Advanced] Give option to the JVM running the command. (Beware that options containing spaces will not be handled correctly.) #### `-v, --verbose` Incrementally increase the number of progress messages printed. #### `-q, --quiet` Incrementally decrease the number of progress messages printed. #### `--verbosity=` \[Advanced] Explicitly set the verbosity level to one of errors, warnings, progress, progress+, progress++, progress+++. Overrides `-v` and `-q`. #### `--logdir=` \[Advanced] Write detailed logs to one or more files in the given directory, with generated names that include timestamps and the name of the running subcommand. (To write a log file with a name you have full control over, instead give `--log-to-stderr` and redirect stderr as desired.)