Releases: se2p/pynguin
Releases · se2p/pynguin
Release Pynguin 0.45.0
- Improve logging with master-worker architecture (cf. GitHub PR #136, #139)
- Improve the temporary activation/deactivation of the tracer (cf. GitHub PR #137)
- Fix fitness computation (cf. GitHub PR #138)
- Fix infinite mutation loop in EnumPrimitiveStatement and ClassPrimitiveStatement (cf. GitHub PR #140)
- Fix crash due to OSError during subprocess result reception
- Fixes for Local Search
Release Pynguin 0.44.0
- Remove unnecessary log messages in case of test execution timeouts (cf. GitHub PR #113)
- Remove unused exceptions, classes, and arguments (cf. GitHub PR #114)
- Conditional coverage (cf. GitHub PR #115, #121)
- Prevent destructors from being explicitly called during test generation (cf. GitHub PR #117)
- Add support for Python3.14 (cf. GitHub PR #120)
- Remove the temporary hack caused by the
bytecodelibrary (cf. GitHub PR #122) - Handle
InvalidInputwhen formatting module withblack(cf. GitHub PR #124) - Fix configuration write (cf. GitHub PR #125)
- Fix "tracing aborted" in coverage report (cf. GitHub PR #126)
- Add local search (fix bugs in cf. GitHub PR #127)
- Fix reload module (cf. GitHub PR #128)
- Fix deprecated typing (cf. GitHub PR #129)
- Add master-worker architecture (cf. GitHub PR #130)
- Add execution recorder (cf. GitHub PR #132)
- Add faker and fandango string generation
- Enhance
TypeTracingfor string subtypes - Fix
TypeErrorwithNoneType(cf. GitHub Issue #53) - Add test suite/case minimization with multiple fitness functions
- Add LLM type inference
- Adjust optional dependencies to use
--extrasinstead of--with - Add
ExecutedandCrashRevealingSizeruntime variables - Add before-execution execution recorder
- Improve LLM assertion parsing
- Replace
isortwithruff-format - Improve DynaMOSA parameters
Pynguin 0.43.0
- Add experimental support for Python 3.11, 3.12, and 3.13 (cf. GitHub PR #110, Issue #84)
- Improve subprocess performance (cf. GitHub PR #110)
- Refactor instrumentation, control-flow graph, tracing, and DynamicSlicer (cf. GitHub PR #110)
- Fix object_addersses not reset after each test execution (cf. GitHub PR #110)
- Fix use of CODE_OBJECT_ID_KEY for modules operating on their docstring (cf. GitHub PR #110)
- Fix edge cases in dynamic slicer (cf. GitHub PR #110)
Pynguin 0.42.0
- Add Test Case & Test Suite Minimization and Crashing Test Minimization
- Add an error if module is not found (cf. GitHub Issue #95),
not imported (cf. GitHub Issue #104) or if a coroutine (async) was found - Set
crash_pathtooutput_pathby default for subprocess-execution - Fix crash when creation of coverage report failed
- Fix crash when
report_dirdoes not exist (cf. GitHub Issue #105) - Add export of used requirements as
requirements.txttooutput_pathfor Docker - Add a heuristic for deciding if subprocess-execution should be used
Pynguin 0.41.0
- Fix
subject_propertiesaren't registered when running Pynguin on an imported module - Update documentation (Codestyle, Code Overview)
- Add LLM-Agent guidelines
- Add PynguinML mode: Parsing and test generation for libraries which require tensor inputs based on API constraints
- Add LLM capabilities: Prompting, parsing, and the LLMOSAAlgorithm
- Add subprocess execution (cf. GitHub Issue #82): Executing test cases in subprocess adds an overhead but makes Pynguin more crash resistant
- Refactor TestCaseExecutor and Observer (cf. GitHub Issue #90): Restructuring observers into main-thread and remote variants to support safe subprocess execution, better performance, and introducing batch test execution and improved error handling for unexposed modules and timeouts
- Refactor Tracer (cf. GitHub Issue #89): Proxy tracer to allow for subprocess instrumentation without costly reinstrumentation
- Add MaxMemoryStoppingCondition: Graceful termination in case of exceeding a memory threshold
- Add probabilistic TypeTracing
- Add minimal LLM mode: Minimal LLM test generator using GPT-4o
- Fixes for
isinstanceforgetmembers, importing the SUT, SystemExit in the SUT, loggers of the SUT, and crashes in SUT - Fix bugs related to UnionTypes, lambda parsing, yield statements, getmembers of SUT, import of SUT, and SystemExit in SUT
- Improve string distance using left-aligned character distance
Pynguin 0.40.0
-
Provide a (normalised) area under curve for timeline output variables.
Variables for statistics that produce a timeline, e.g., coverage development over time imply in interesting property: while the final coverage of two distinct runs/configurations might be equal, one might have a faster coverage increase than the other, thus could be considered better. The area under curve, i.e., the integral over the development function allows to access this property easily.
-
Add the ability to write the logging to a log file and not only STDOUT.
-
Add an auto-deploy action to GitHub to push releases to PyPI.
-
Fix a typo in the documentation (cf. GitHub issue #75).
-
Switch to
ruff-format.
Pynguin 0.39.0
- Fix a bug in the handling of infinite loops in global scope (thanks to @BergLucas in #65)
Pynguin 0.38.0
- Remove the dependency to our custom MutPy fork by integrating the relevant code into Pynguin directly (thanks to @BergLucas in #64)
Pynguin 0.37.0
- Add possibility to control number of mutations in MOSA.
- Compute the area under curve if Pynguin traces the overage over time; area under curve can be interpreted as the integral over the coverage function, which is computed via trapezoidal approximation.
- Fix the assertion generation for
floats (thanks to @BergLucas in #70) - Fix assertion and invalid function call (thanks to @BergLucas in #72)
Pynguin 0.36.0
- Remove unused code
- Fix
ruffwarnings - Add sequence variable for type-evolution tracking
- Add CLI options to ignore methods and modules from analysis (see #62)