Features
-
robot: Make the analysis cache trustworthy under rapid file changes (c998399)
Fast consecutive changes to several files could poison the analysis
cache: the editor and the CLI then reported errors that did not exist,
like missing keywords or unresolvable variables, until the affected
files were touched again. Cached results are now bound to exactly the
file state they were computed from, and unsaved editor content is
analyzed but never cached, so stale results can no longer stick. -
robotcode: Run tests through a wrapper (7aa84f6)
Run the test execution through a command of your choosing, so you can
prepare the environment a run needs - start the services, servers,
mocks or session the tests depend on, run the tests inside it, and tear
it down again afterwards. For anything that is only environment
variables, keep using robot.toml's [env].Configure it per profile in robot.toml:
[profiles.integration] wrapper = ["./with-test-services.sh"]set it ad hoc with --wrapper (or the ROBOTCODE_WRAPPER env var), and
turn a configured wrapper off for one run with --no-wrapper. It applies
to every command that executes Robot Framework - run, debug, the REPL
and the notebook kernel - never to discovery, the language server or
libdoc.Editors pick it up automatically because they run robotcode; the
VS Code setting robotcode.debug.launchWrapper can override it for the
IDE alone.
Bug Fixes
-
plugin: Use compact JSON separators for json output format (e882368)
The compact flag was compared against OutputFormat.TEXT instead of
OutputFormat.JSON, so compact JSON output was never actually applied. -
robotcode: Make the wrapper work on Windows (7baa0ac)
The wrapper re-run used os.execvp to replace the process, which only has
POSIX semantics; on Windows os.exec* spawns a new process and exits the
caller, so the exit code and stdout/stderr don't propagate. Keep execvp
on POSIX (clean, no extra process) and on Windows spawn the command,
wait, and forward its exit code. The subprocess tests, and their wrapper
scripts, use spawn-and-wait too, so they no longer skip on Windows.Also document how running through a wrapper differs on Linux/macOS vs.
Windows, and why. -
robotcode: Make the wrapper work in VS Code (1180d9c)
Running or debugging tests through a wrapper did not work from the
editor, where robotcode runs from a bundled path instead of being
installed in the interpreter. Two things are fixed:-
The debug launcher no longer applies the wrapper itself; it forwards a
launch.json wrapper to robotcode as --wrapper and lets robotcode apply
it (so a launch.json wrapper still overrides the profile's). -
When robotcode re-executes itself under the wrapper it re-runs through
the same entry it was started from (--launcher-script) instead of
python -m robotcode.cli, which the bundled interpreter cannot import.
ROBOTCODE_BUNDLED_ROBOTCODE_MAIN is deliberately not used for this: VS
Code sets it in every terminal, so it would divert a directly started
robotcode to the bundled copy.
-
-
vscode: Adapt to vscode-languageclient 10 type changes (95f305a)
Bumping vscode-languageclient to 10.1.0 broke the typecheck:
LanguageClient now requires a LogOutputChannel instead of a plain
OutputChannel, and Diagnostic.message can now be a MarkupContent
instead of just a string. -
vscode: Restore -I and -N options when running tests (c76b113)
Running a single test, a file, or any subset from the Test Explorer
again passes Robot Framework's parse-include (-I) and top-level suite
name (-N) options. Since 2.6.0 both were missing, so on Robot Framework
6.1+ the run parsed the whole workspace and surfaced parse errors from
unrelated files.Robot Framework's --parseinclude support is now reported as a
per-project fact on the discovery result envelope. In the
robotcode discover -f jsonoutput this is the new
supportsParseIncludekey on the result (replacing the previous
needsParseIncludekey on each item).
Documentation
-
news: Add v2.7.0 release notes (033e12d)
Announce the test-run wrapper, the trustworthy analysis cache, and the
restored -I/-N options for Test Explorer subset runs.