Nette Tester 2.4.0 is out
A new smaller release is out. And since there are no posts on the blog about the patches from 2.3.1 to 2.3.5, I will address them in this post too. Let's move from the past to the present.
Version 2.3.1 is purely maintenance release, just like version 2.3.2, but this release brought two small improvements.
The first is that
Tester\Runner has a new public property
string $ignoreDirs. It contains directories that are ignored by
the runner when searching for test files. The default one is
The second is that
Tester\DomQuery does not issue a warning when
parsing an “unknown” HTML tag, because it is quite hard to tell what is
“unknown”. With this change, HTML can contain SVG or MathML tags, or any custom
element at all.
Tester internally started to use GitHub Actions workflow and PHPStan.
Version 2.3.3 brought other minor improvements.
If the Dumper's output contains any paths, they can now be clicked in the PhpStorm terminal with the Awesome Console plugin.
Waiting for the last runner job has been fixed. The bug was causing high CPU usage.
The assertion exception message contains
name (array key). With a large number of datasets, it was quite difficult to
detect the wrong one. Now you get a hint, e.g.:
true should be false in testMe() (data set '231').
The distribution of the PHAR tester has been dropped. I found that
tester.phar didn't work for a really long time and nobody
complained. The dead code was buried.
Version 2.3.4 is another maintenance release. It was released when PHP 8.0 RC was being born, and contains revisions for incoming PHP 8 compatibility.
Version 2.3.5 is a bug fixing release and compatibility improvement. It
primarily supports Xdebug 3. And one annoying processing bug
@dataProvider has been fixed. If you use integer-indexed datasets,
it may happen that only the first record of the dataset was tested. So please
And finally, version 2.4.0 is a fresh new minor version.
The code coverage report got a few improvements thanks to Matouš Němec (mesour). Loading in the browser is about an order of magnitude faster and the generated file size is about 20% smaller. The list of test files can be sorted by coverage percentage or by name and arranged in a tree. The report name contains information about the number of files and lines of code. See example. Thanks to Matouš!
Tester\Assert there are new methods
hasNotKey() that test for the presence of a key in an array.
Tester\Runner\Test there is a new method
getDuration(): ?float that returns the run time in seconds. Null
means that the test did not run, for example it was skipped during
initialization. You can use the duration information in your own output
The command line option
-o is repeatable and accepts a filename
parameter. If the filename is omitted, stdout is used. See example:
tester -o console -o log:report.log -o junit:report.xml
--log is replaced by option
-o log, but
still works to maintain compatibility.
The test handler now uses a cache for the list of test case methods. What
does this mean? If you write tests as TestCase, the runner must examine the test
method list each time it runs. With a large number of TestCases, say 100, this
could take 2 seconds or more due to the number of PHP processes. This delay is
now omitted. The test handler keeps track of the modification time of the test
case class file, its parent and all its traits. As a storage it uses temporary
directory configurable with the
--temp option. Please send me
feedback on this feature.
Tester\TestCase has a new method
skip(string $message). With it you can skip an individual test
method, not the whole test suite.
And one small BC break. Method
DataProvider::load() can now
return an empty data set. Previously it threw an exception in this case, so your
existing tests should not be affected.
And that's it. See you next time.
- Interview with Matouš about news in PhpStorm plugins
- Nette Tester 2.3.0 is out
- Nette Tester 2.2.0 is out
- Nette Tester 2.0.0 is out
- Changes in Nette Tester 1.7.0
- Changes in Nette Tester 1.6.0
- Changes in Nette Tester 1.5.0
- Changes in Tester 1.4.0
- Changes in Nette Tester 1.3.1
- Changes in Nette Tester 1.3.0