matepek / vscode-catch2-test-adapter

Catch2, Google Test and doctest Adapter for the VSCode
https://marketplace.visualstudio.com/items?itemName=matepek.vscode-catch2-test-adapter
MIT License
210 stars 52 forks source link

The ambiguous explanation of the test.parallelExecutionLimit and the test.parallelExecutionOfExecutableLimit #416

Closed suikan4github closed 9 months ago

suikan4github commented 10 months ago

Checklist

Describe the bug This is considered a documentation problem.

The explanation of the test.parallelExecutionLimit and the test.parallelExecutionOfExecutableLimit are ambiguous. In other words, the difference of both settings is not clear.

In the README, the explanation is like this :

testMate.cpp.___ Description
test.parallelExecutionLimit Maximizes the number of the parallel test executions.
test.parallelExecutionOfExecutableLimit Maximizes the number of the parallel execution of executables.

Sorry to say, I can not understand what that means. I have read the source, too. But I could not understand ( I am not familiar with the typescript ).

I guess, these might be re-written as : testMate.cpp.___ Description
test.parallelExecutionLimit Maximum parallel execution number of a single executable.
test.parallelExecutionOfExecutableLimit Maximum total parallel execution number of multiple executables.

To test my guess, I need a multiple executable test set. But I don't have it. So, this is just a guess.

I appreciate it if you made it clear.

To Reproduce No. This is considered a documentation problem.

Screenshots (optional) This is a screenshot of the README. image

Desktop

Regression bug? No.

matepek commented 10 months ago

Hello,

Sure, let's discuss it. I'm happy if we can improve this.

Let me ask you a question just to make sure we have the same understanding on some basics.

What is a test and what is an executable and what is the relationship between them for you?

suikan4github commented 10 months ago

Hi.

I am a GoogleTest user. So,

In my case, an executable file contains multiple unit tests.

Ext3h commented 10 months ago

test.parallelExecutionLimit: Maximizes the number of the parallel test executions.

Maximum number of parallel executions of the same test executable. This does not further distinguish between different test cases or permutations / iterations of the same test case.

Limit this if you have resources which are instantiable only a limited number of times per test executable.

Warning: There is no concept of resource groups spanning multiple executables!

test.parallelExecutionOfExecutableLimit: Maximizes the number of the parallel execution of executables.

(Global) total number of parallel executions of any test executable.

This is the number of processes which will be running concurrently at peak.


Additional processes will only be spawned when both the total number of concurrent processes is below test.parallelExecutionOfExecutableLimit and the number of concurrent processes spawned from the target executable is under test.parallelExecutionLimit.

suikan4github commented 10 months ago

Thank you very much. This is clear and easy to understand.

matepek commented 9 months ago

This is not correct. Ah, I definitely should clear this up..

test.parallelExecutionLimit

Maximum parallel run of tasks. Tasks are 'running a set of tests', 'test executable discovery' and 'reload of the executable's test list'. NOTE: If your executables depend on the same resource exclusively then this could cause a problem.

test.parallelExecutionOfExecutableLimit

Maximum number of execution of the same executable. With this config it can be allowed that one executable is running at the same time as multiple processes and those processes 'running a set of tests' parallel. Useful if one executable has a lot of tests which can be run parallel. It won't have effect unless the test.parallelExecutionLimit is adjusted too. To enable this just for specific executables use the testMate.cpp.test.advancedExecutables -> parallelizationLimit. NOTE: if your test cases depend on the same resource exclusively then this could cause a problem.

I hope it's clear now. I will update the docs