Using the Kahlan Command (with examples)
Running all specifications in the “spec” directory
To run all specifications in the “spec” directory, you can use the following command:
kahlan
Motivation: This command is useful when you want to run all your test specifications in one go. It helps to ensure that all the tests are passing and that your code behaves as expected.
Explanation: By simply running kahlan
without any additional arguments, Kahlan will search for all test specifications within the “spec” directory and execute them.
Example Output:
Kahlan 4.9.0 by Crysalead
InfectionPlugin - Plugin Test
✓ runs a passing test
....................................................
Finished in 0.04 seconds
44 specifications, 1 failure
Running specifications using a specific configuration file
Sometimes you may have a specific configuration file for your tests. To use this file, you can specify its path using the --config
argument. Here’s an example:
kahlan --config=path/to/configuration_file
Motivation: A specific configuration file can be helpful when you have custom settings or plugins that you want to use for your tests. It allows you to have more control over the testing environment.
Explanation: The --config
argument is followed by the path to the configuration file. Kahlan will then use the provided file to load your custom settings.
Example Output:
Kahlan 4.9.0 by Crysalead
InfectionPlugin - Plugin Test
✓ runs a passing test
....................................................
Finished in 0.04 seconds
44 specifications, 1 failure
Running specifications and output using a reporter
Kahlan provides various built-in reporters that allow you to customize the output format of your test results. To use a specific reporter, you can use the --reporter
argument. Here’s an example:
kahlan --reporter=dot|bar|json|tap|verbose
Motivation: Different developers have different preferences when it comes to the output format of their test results. Using a specific reporter allows you to choose the format that is most convenient for you.
Explanation: The --reporter
argument is followed by the desired reporter name. Kahlan supports several built-in reporters such as “dot”, “bar”, “json”, “tap”, and “verbose”. Each reporter provides a different style and level of detail in the output.
Example Output (using “dot” reporter):
Kahlan 4.9.0 by Crysalead
InfectionPlugin - Plugin Test
..............
Finished in 0.04 seconds
44 specifications, 1 failure
Running specifications with code coverage
Code coverage is a helpful metric that shows the amount of code that is covered by your test suite. Kahlan supports code coverage out of the box. To enable it, you can use the --coverage
argument followed by a detail level (between 0 and 4). Here’s an example:
kahlan --coverage=detail_level
Motivation: Code coverage helps to identify areas of your codebase that are not adequately covered by your tests. By running specifications with code coverage, you can get insights into the coverage percentage and pinpoint areas that may need additional test cases.
Explanation: The --coverage
argument is followed by a detail level, which determines the level of detail displayed in the code coverage report. The detail level can be set between 0 and 4, with 0 being the least detailed and 4 being the most detailed.
Example Output (with 100% code coverage):
Kahlan 4.9.0 by Crysalead
InfectionPlugin - Plugin Test
✓ runs a passing test
....................................................
Code Coverage Report:
100% Classes
100% Methods
100% Lines
Finished in 0.04 seconds
44 specifications, 1 failure
Conclusion
By using the Kahlan command with various arguments, you can easily run your test specifications, customize the output format, use specific configuration files, and even enable code coverage. These features provide flexibility and help you ensure the quality and reliability of your PHP code.