Releases: se2p/pynguin
Pynguin 0.30.0
- Re-license Pynguin to MIT License
Pynguin 0.29.0
- Move code to
src
-based layout - Make configuration of
mypy
more strict - Remove an accidentally committed file
Pynguin 0.28.0
- Fix distance computations for
<=
and always convert values tofloat
. - Improve method blacklist for module analysis.
- Improve type handling.
- Allow Pynguin to run on itself. This can be achieved by the
pynguin_self.py
script
from theutils
package. - Improve warning in documentation that Pynguin actually executes the code under test.
- Various refactorings and improvements.
- Update copyright notices in all files.
Pynguin 0.27.0
-
Write Pynguin version number to Cobertura XML report
-
Fix the computation of coverage values
Pynguin 0.26.0 added the possibility to optimise for, e.g., branch coverage while yielding the line coverage of the resulting test suite in the end. This had some unintentional implications, such as the value of the
Coverage
output variable having weird values. We fix this by providing additional output variablesFinalBranchCoverage
andFinalLineCoverage
that contain the final coverage values after all generation and postprocessing. See the runtimevariable.py module for details. -
Rewrite the internal type handling in Pynguin
This is a huge internal change that improves the internal type system and adds the possibility to trace types during test execution. Some highlights:
- we got rid of our internal abstraction of
type | None
to mark whether type
information exists - we allow to retrieve additional or new type information from the test execution
- enhance our internal type representation to make it more flexible
- add the missing primitive type
complex
- a more suitable subtyping check for
Union
s
- we got rid of our internal abstraction of
Pynguin 0.26.0
-
Allow the calculation of coverage values regardless of optimisation.
Allows to yield, for example, the resulting line coverage of the test suite, while the optimisation during test generation was done for branch coverage. Add the required coverage values to your
--output-variables
list to activate this feature.Note: when doing this, the
Coverage
output variable will contain the average value of the incorporated coverage values! -
Provide a Cobertura-like coverage report
Pynguin already provides an HTML report that can be activated by setting
--create-coverage-report True
. This report is nice for human users but not very usable if one wants to automatically reason about the achieved coverage using tools. We thus also emit an XML report in the style of the Cobertura tool that can be used for further automated tools. -
Fix typo on
test_parameterizedstatements.py
(see #27, thanks to @stavares843) -
Fix typo on
testcase.py
(see #26, thanks to @stavares843) -
Improve mutation-based assertion generation
The assertion generation now does not more compare the recorded assertion traces but actually executes the assertions to make the whole process more reliable. Besides, we do not check for
is not None
as a fallback for object checks any more, but use anisinstance
check on the object's type to have a more precise assertion. -
Make statistics tests debuggable
Some accidental circular import made it impossible to run a debugger on tests in
pynguin.utils
. We resolved this by moving tests to another package. -
Partial rework of internal type system
We added an abstraction layer over the existing type hints from a module to make handling and reasoning with types easier. This abstraction is based on the one used by
mypy
, however, we only cover a small part of what PEP-484 actually defines. -
Make assertion generation more strict
Pynguin 0.25.2
- Fix bugs in mutation analysis and assertion generation
Pynguin 0.25.1
- Fix documentation build on read the docs.
Pynguin 0.25.0
Pynguin 0.24.1
- Update Pynguin's documentation to match fixes from Pynguin 0.24.0
Pynguin 0.24.0
- Fix killing mutant reporting
- Use black to format the generated test cases.
Pynguin now requiresblack
as a run-time dependency to use its code formatting.