All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- an issue (#169) when source file path resolution didn't work in case of DOCTest
additionalRunArguments
prependTestListingArgs
: Similar toadditionalRunArguments
but it prepends instead of appending.prependTestRunningArgs
npm update
README fixes and option to force add .../_deps/...
.
- Ignoring more known extensions and also ignoring
_deps
subfolder. This change might cause a problem for some user but hopefully just makes the test discovery much faster.
- Google Test framework experimental discovery.
Improved logging and some extra error handling.
Improved logging
- gutter location if the assertion comes from a different file (ex.:
#include
).
- catch2 custom failure parsing
- experimental support to override test framework recognition.
- experimental Catch2 benchmark support
- doctest exception handling
catch2TestExplorer.executables
used as an array cannot contain strings anymore. Example:[ "*.test.exe" ]
-->[ { "pattern": "*.test.exe" } ]
- Some mechanism which prevent to enumerate test for multiple times when the file hasn't changed.
- GoogleTest version detection
- Enhanced variable for
catch2TestExplorer.executables
. From now array indexing is supported like:${relDirpath[:-1]}
:a/b/c
=>a/b
${base2Filename}
=>${filename[:-2]}
${ext2Filename}
=>.${filename[-2:-1]}
${base3Filename}
=>${filename[:-3]}
${ext3Filename}
=>${filename[-3:-2]}
${parentDirname}
=>${relPath[-1:]}
Just some logging related fixes, nothing interesting.
- Catch2 parsing bug
Nothing interesting:
- npm update
- logging framework usage
- slightly more flexible Catch2 test list parsing.
Sentry fix: webpack caused it.
- experimental support for doctest version >= 2.3.6
Finally I decided to use webpack. Package is the fraction of the previous version and loading time is faster.
- Catch2 parsing errors.
- Google Test parsing improvements
- a bug related to bactick in SECTION name
- Catch2 output information format has been changed. (Hopefully a bit more readable.)
Logging improvements.
Logging improvements.
Logging improvements.
catch2TestExplorer.logSentry: "enable"
.
debugConfigTemplate
now filterslaunch.json
a bit more precisely
Nothing really changed (just slightly), but documentation was updated.
Fixing vulnerabilites in packages.
- Resolving
${os_env:<varname>}
will result in empty string if if<varname>
is not set. Use${os_env_strict:<varname>}
which will not set the target variable if there is no<varname>
environment variable.
catch2TestExplorer.workerMaxNumber
now "really" applies for the test exploration phase too
catch2TestExplorer.workerMaxNumber
now applies for the test exploration phase too
- The path is relative to the test file. If the source file is already open vscode would open it another time using the unnormalized file path.
- Updated googletest links.
catch2TestExplorer.retireDebounceTimeMilisec
to the configs.
Fixed security vulnerability.
catch2TestExplorer.executables
'spattern
resolves variables related to the process's environment variables (Ex.:${os_env:PATH}
).
catch2TestExplorer.defaultExecParsingTimeoutSec
to the configs.
catch2TestExplorer.googletest.gmockVerbose
to the configs.catch2TestExplorer.googletest.treatGmockWarningAs
to the configs.
executables
's properties can contains variables related to environment variables (ex.:${os_env:PATH};/mypath
).
npm update: security alert fix.
"Google Test improvements. Now I use my product, so I've found a lot a of small issues." Vol. 2.
- Google Mock output parsing enhancements.
- a bug related to config retrieval.
- additional file extensions recognized as valid executable:
.cmd
and.bat
(PR)
Google Test improvements. Now I use my product, so I've found a lot a of small issues. :)
- Google Test was losing it's state when the exec was touched.
- a bug which ignored the user and global config values.
- a logic which tries to create a debug template on the fly.
It searches for configurations in the workspacefolder's
.vscode/launch.json
. It will choose the first one which's"request"
property is"launch"
and hastype
property.
Just updated the README.md and updated the packages.
- a bug related to parsing a Google Test with 'TypeParam'.
- a bug which occured when the test executables crashed on windows.
- a misleading default config.
- a bug which reloads the suite in case of the test crashes.
- some vulnerabilities in packages (npm audit fix)
- section info in description
- some issue with
dependsOn
related toGaze
fs-watcher.
executables
'sdependOn
(type: string[]) property is no longer experimental. Be careful with it. It eats file descriptors and defecates test executions.- section result stat to description and tooltip.
executables
'sdescription
property for nicer labels- (experimental)
executables
'sdependOn
(type: string[]) property. Be careful with it. It eats file descriptors and defecates test executions.
- fswatcher library has been replaced:
chokidar
->gaze
. There were some problem with it on OSX. Don't care, threw it out.
- a bug related to abs-path watcher (
chokidar
).
- support for
GTEST_SKIP()
. - (experimental) glob pattern for patterns outside the workspace directory
- (experimental) watcher for executables outside the workspace directory
- a bug which caused to run all tests of a suite including the skipped ones too
- experimental feature:
catch2TestExplorer.enableTestListCaching
- scripts like
.py
,.sh
,.js
are allowed for those who are using wrappers. Related issue.
- a bug related to debugging (microsoft/vscode#70125).
- test suite loading order from now is not deterministic. One can set
testExplorer.sort
for ordering.
- doesn't send skipped events for skipped tests: This will preserve
- in case of Google Test 'DISABLED_' prefix is removed from the label. The icon indicates it anyway.
- it seems Google Test's test names first character can be a digit.
- the test list parser timeout from 5 to 30 seconds.
- section picker for debugging.
- a bug related to env variables in case of debugging.
testExplorer.sort
, so I removed my logic. If you want the old ordering set this tobyLabelWithSuitesFirst
.- tooltip: it will show more info about the suites and tests.
catch2TestExplorer.defaultRngSeed
, which didn't work at all.
- config scheme validation is much better
- a small bug related to
executables
's environment variables.
Stability improvements.
- A list of non-executable extensions has been extended to:
'c', 'cmake', 'cpp', 'cxx', 'deb', 'dir', 'gz', 'h', 'hpp', 'hxx', 'ko', 'log', 'o', 'php', 'py', 'rpm', 'sh', 'so', 'tar', 'txt'
- a bug related to navigation to source.
This version probably contains stability improvements ✌️, but in case it doesn't work on all platforms as I expect, you can downgrade it in the vscode's extension manager and please file an issue about the bug. 🙏
REMARK: A list of non-executable extensions are hard-coded: ['py', 'sh', 'cmake', 'deb', 'o', 'so', 'rpm', 'tar', 'gz', 'php', 'ko']
.
And on Windows everything is filtered what is not ends with .exe
;
- sending
SIGKILL
in case of second cancel. (Clicking onto the cancel button after the first cancel wasn't successful.)
- In case of multiple adapters or workspace folders, if there are no tests in a particular workspace folder it won't be shown in the Test Explorer.
- a bug related to Google Test framework's test list loading. (Issue)
Sorting has been change to alphabetic order.
Google Test tests are grouped.
- a bug related to suite name uniquification.
Performance and stability improvements.
Performance and stability improvements.
- a bug which caused that
files.exclude
were also applied to pattern. Not anymore. - a bug which caused to show not file names but patterns in the explorer.
- a bug which allowed suite duplications if more patterns were matching.
- a bug related to Google Test framework:
INSTANTIATE_TEST_CASE_P
.
- a bug related to
defaultCwd
anddefaultEnv
andexecutables
'scwd
.
- Handling: Catch2: INFO, WARN, FAIL, std::cout, std::cerr
catch2TestExplorer.enableSourceDecoration
will be removed. UsetestExplorer.errorDecoration
.
fs-extra
was only a devDependencie, so the extension couldn't load.
- Debugging a Google Test did run all the tests.
Google Test framework support has been added. It is in experimental phase.
- bug related to loading test list with duplicated test names
- a bug related to autorun see
Better error handling and logging.
catch2TestExplorer.defaultRunningTimeoutSec
to prevent infinite loops
Stability improvements.
- Source file path resolution
- Bug related to automatic test reloading
Updated README.md
Unnecessary codes and packages are removed from extension package.
Also old releases will be removed from Github releases page,
because of a security issue
related to vscode
package.
- Security issue related to event-stream https://code.visualstudio.com/blogs/2018/11/26/event-stream
Stability improvements.
- relative patter/path outside of workspace didn't work
- tests are added/removed if change detected under running tests
Performance and stability improvements. Improved logging.
catch2TestExplorer.defaultNoThrow
option. Skips all assertions that test that an exception is thrown, e.g. REQUIRE_THROWS. This is a Catch2 parameter: --nothrow.
- debugger recognition. (ms-vscode.cpptools's documentation is incorrect)
catch2TestExplorer.debugBreakOnFailure
option. It is true by default.- Change of test file (ex.:recompilation) triggers "autorun" feature.
(Right click on test/suite in text explorer -> Enable to enable autorun for the selected test/suite.)
This basically means that the selected test/suite will run in case of any filesystem event related to the
executables
variable. It can be really useful if one would like to run a test (or suite) automatically after recompiliation.
Performance and stability improvements.
- It reloads suite if it finds any new tests.
- A bug in package.json. It couldn't load the tests by default.
- A bug related to jumping to source.
- A bug related to xml parsing.
For development:
Now, if there is 'something' in the CHANGELOG without date (ex.: "[1.2.3]") and it is merged to the master, a deploy job will run it will:
- Appends the
CHANGELOG.md
's new version-line with the current UTC date: "[1.2.3]" --> "[1.2.3] - 2018-10-31".- Updates the version number in
package.json
according to the one inCHANGELOG.md
.- Creates a commit about it.
- Creates a tag too.
- Creates a
GitHub release
for the tag and uploads the generated.vsix
file.- Publish the new version to Visual Studio Marketplace.
Hopefully it works (partially tested only 🤞).
executables
'spath
. Now it is mapped topattern
, so works, but it will be removed in the future.
Lot of things new under the hood, but lets talk about the 'API' change.
-
Renamed
defaultExecWatchTimeout
-->defaultWatchTimeoutSec
.- Also the unit has changed from millisecond to second.
-
Renamed
debugConfigurationTemplate
-->debugConfigTemplate
. -
Renamed
path
property ofexecutables
-->pattern
. (Technicallypath
still can be used as an alias.) -
Changed behaviour of
path
property ofexecutables
. Now it can understand "VSCode patterns". (Details) - These work for only path's inside the workspace directory. Paths outside of it can be used with absolute path or with relative to working directory (ex.:../build/test.exe
), but without patterns (and without file-watch).*
to match one or more characters in a path segment?
to match on one character in a path segment**
to match any number of path segments, including none{}
to group conditions (e.g. {**/*.html,**/*.txt
} matches all HTML and text files)[]
to declare a range of characters to match (e.g.,example.[0-9]
to match on example.0, example.1, …)
-
File system is watched through the previously mentioned pattern (only inside the workspace directory), and newly created executables will be added automatically, deleted ones will be removed and changed ones will be refreshed.
-
Variable substitution has been changed. (See README for details.)
- Removed
regex
property ofexecutables
. - Removed
recursiveRegex
property ofexecutables
.
- Configuration:
catch2TestExplorer.defaultExecWatchTimeout
: Test executables are being watched. In case of one compiles too much this variable can help with it.
Bugfix release
- Parsing 'Randomness' values
- Fixed
catch2TestExplorer.defaultRngSeed
- Configuration
catch2TestExplorer.defaultRngSeed
is added. - Test's running duration is shown.
- package.json workerMaxNumber naming has been fixed.
- Loads of bugs ave been fixed. (Typically platform related ones.).
- Skipped tests are recognised.
catch2TestExplorer.workerMaxNumber
, see Changed section.- Tricky test names (with spaces in it) are handled.
- Just global worker limitation exists from now so, it was renamed
catch2TestExplorer.globalWorkerMaxNumber
=>catch2TestExplorer.workerMaxNumber
catch2TestExplorer.defaultGroupFileLevelRun
was removed. Now just group file level run exists.- Thats why
catch2TestExplorer.defaultWorkerMaxNumberPerFile
was unnecessary too, removed. - And also
catch2TestExplorer.executables
'sworkerMaxNumber
was removed. catch2TestExplorer.globalWorkerMaxNumber
, see Changed section.
catch2TestExplorer.defaultGroupFileLevelRun
. Check [README.md] for details. If you have a loads of tests in a file or your test file starts slowly because you should benefit from this.
- Project structure was refactored.
- Navigate to source now works before running the tests too. (Except on Windows. Probably that is not the problem of this extension.)
- npm update.
recursiveRegex
flag has been added.
- Fixed debugConfigurationTemplate config default value.
- Debug button works now if
debugConfigurationTemplate
is properly set.
- IMPORTANT!!! Config variable names has been changed. Check the updated documentation: README.md
- Fixes some issues related to test auto-reloading after compilation.
- Nothing really, just refactoring.
- Everything. This is the initial version for review.