Releases: morganstanley/testplan
Development Build
25.8.0
.. _rev_25.8.0:
25.8.0 (2025-08-15)
-
:changed:
ChangedFix an issue where PDFs failed to render in certain cases. Fix console output of certain assertion details. -
:changed:
ChangedUpgradegherkin-officialto32for supporting BDD on Python 3.11 or later.Note that spaces are no longer allowed in gherkin tags, this could be a breaking change for BDD users. As a result, lines like
@tag a @tag bin feature files should be replaced with line like@tag_a @tag_b, and line@KNOWN_TO_FAIL: some reasoncould be replaced with@KNOWN_TO_FAIL:some_reason. -
🆕
NewAdded a timeout entry to the report to make testplan-level timeout events more visible to users. Fixed an issue where multitests incorrectly appeared as passed in stdout upon timeout. Updated the status of unfinished test suites and multitests to "incomplete". -
:changed:
ChangedSpeed up interactive mode report initial load. -
🆕
NewCreate new frontend componentsDictMatchAllandFixMatchAll. -
:changed:
ChangedThe wrapped driver class within :py:class:RemoteDriver <testplan.common.remote.remote_driver.RemoteDriver>is now constructed only on remote host. -
:changed:
ChangedMethod signature check of testcases/test hooks has been relaxed to allow underscore-prefixed variants of parameters, so that linter wouldn't raise unused variable warnings on them. -
:changed:
ChangedMove certain dependencies to extras (i.e. optional dependencies) to shrink the installation size in pipelines. User need to install Testplan with extras in order to use certain features.- Extra
interactivefor interactive mode & report display through local server features, containingflask& several related packages. - Extra
plotlyfor plotting with plotly feature, containingpandas&plotly. - Extra
allfor all the features above.
For example, to use interactive mode feature, one can install Testplan with the following command:
.. code-block:: bash
pip install testplan[interactive] - Extra
-
:removed:
RemovedRemove support for Python 3.7 and 3.8. -
:changed:
ChangedParametersauto_part_runtime_limitandplan_runtime_targetof @test_plan now takes "auto". See :ref:documentation <auto_part>for details. -
:changed:
ChangedMaketeardown_timefield mandatory in the json file provided via--runtime-datacmdline arg for auto part and smart scheduling. -
:changed:
ChangedFix an issue where nested lists indict.matchanddict.match_allassertions were not fully shown in the result output. -
:changed:
ChangedTemporarily restrict package dependencymarshmallowto versions<4. -
:changed:
ChangedFixed fake report for UI development -
:changed:
ChangedRuntime data JSON file specified through--runtime-datanow accepts an optionaltestcase_countfield, which should hold the total number of testcases from the previous run. Iftestcase_countis specified, estimated MultiTest execution time will be adjusted by the ratio of current run's testcase count to that of previous run, which should bring more accurate auto-partitioning and improved testing resource utilization. -
:changed:
ChangedSettimezoneentries in Testplan reports toUTCwhen local timezone detection fails. -
:changed:
ChangedFix an issue that generated incorrect figures of driver starting/stopping timeline inside the driver-info feature.
25.3.0
.. _rev_25.3.0:
25.3.0 (2025-03-25)
-
:changed:
ChangedChange Testplan exported JSON report structure to reduce report size.- Remove unused report entry fields.
fix_spec_path.status_overrideandstatus_reasonin case they are empty.line_no,code_contextandfile_pathif--codeis not enabled.env_status,part,strict_orderandhostdepending on report category.
- Remove unused assertion entry fields
categoryandflagif they areDEFAULT. - Merge assertion entry fields
utc_timeandmachine_timeinto a unix timestamp fieldtimestamp, and store timezone info in parent Test-level report under keytimezone. - Replace ISO 8601 time string with unix timestamp in all
timerfields, and add atimezonefield to Testplan-level report as well. - Update data structure of several serialized assertion entries.
- Delta encode level info of
flattened_dictfields ofDictLogandFixLogentries. - Delta encode level info of
comparisonfields ofDictMatchandFixMatchentries. - Delta encode level info of nested
comparisonfields ofDictMatchAllandFixMatchAllentries, remove extra nesting ofmatchesas well. - Preserve abbreviations of match status of
DictMatch,FixMatch,DictMatchAllandFixMatchAllentries, i.e.pinstead ofPassed,finstead ofFailed,iinstead ofIgnored. - Remove
indicesfield ofTableLogentries.
- Delta encode level info of
- Remove unused report entry fields.
-
:changed:
ChangedFix releaseherald documentation -
:deprecated:
DeprecatedSupport for Python 3.7 and 3.8 is deprecated and will be removed soon. -
:changed:
ChangedHandle potential race condition during resource monitor termination -
:changed:
ChangedImprove error logging for :py:class:~testplan.common.remote.remote_service.RemoteService; fix incorrect imitated workspace on remote due to leftover symlink from previous run. -
:changed:
ChangedRemove Sphinx and other packages for building document from Testplan's dependencies. -
:changed:
ChangedCopy permission bits for the copied binary in App.
25.1.0
.. _rev_25.1.0:
25.1.0 (2025-01-20)
-
:changed:
ChangedChecks if a process exists by reading the/proc/<pid>/stat. -
:changed:
ChangedSupport :py:class:RemoteDriver <testplan.common.remote.remote_driver.RemoteDriver>in dependency graph of test environment (thedependenciesparameter). -
:changed:
ChangedUse lazy import for Matplotlib and move cache to runpath. -
🆕
NewAdded--codeflag to collect code context for the assertions. Code context one-liner will be displayed on the web UI if enabled.
Note that file path information is no longer collected by default. To collect file path information, enable code context. -
🆕
NewAdd a new summary page on resource view to show the task allocation per host. -
:changed:
ChangedRefactor the stop logic of :py:class:App <~testplan.testing.multitest.driver.app.App>driver for faster environment shutdown. Rename parametersigint_timeouttostop_timeout. Add a new parameterstop_signalfor custom stop signals, its default valueNoneinvokesterminatemethod to stop subprocess, i.e. sendingSIGTERMsignal to subprocess on Linux.
Environment will fail to stop if subprocess doesn't terminate within the default 5-secondstop_timeoutfor graceful shutdown. Increasestop_timeoutor changestop_signal(to maybeSIGKILLon Linux) could resolve this issue. -
:changed:
ChangedMake sure when stop() is called on App type driver, we clean up all orphaned processes. -
:changed:
ChangedIf :py:class:App <~testplan.testing.multitest.driver.app.App>driver times out during shutdown or leaves orphaned processes after shutdown, Testplan will now emit a warning and perform a forced cleanup instead of failing the tests. -
:changed:
ChangedIncrease the number of Remote worker setup thread. -
:changed:
ChangedFix interactive mode crashing issue when loading a namespace package. (It is still not supported to reload namespace packages.)SyntaxErrorwill no longer be suppressed during interactive mode code reloading. -
:changed:
ChangedFix incorrect early stop detection logic. -
:changed:
ChangedSwapped Run and Reload buttons on the interactive UI by user request. -
:changed:
ChangedUse a new JSON libraryorjsonto improve performance when using Python 3.8 or later versions. -
:changed:
ChangedLimit the length of parameterization testcase name to 255 characters. If the name length exceeds 255 characters, index-suffixed names (e.g.,{func_name} 1,{func_name} 2) will be used. -
🆕
NewTestplan now includes its own version in generated report. -
:changed:
ChangedJSONExporterwill log a "file not found" warning in the log instead of raising an exception. -
:changed:
ChangedFixed an issue where enabling Status icons crashed the report when a test was marked as XFAIL. -
:changed:
ChangedUpdateorjsondumping option to allow serializingnumpyobjects.
24.9.2
.. _rev_24.9.2: