Is there an easy way to build a test suite from all tests in a folder containing multiple packages?
12 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
TallBrian
am 2 Dez. 2019
Kommentiert: TallBrian
am 6 Dez. 2019
I have a non-package directory, containing several packages. Each package may contain subpackages. The packages have class-based unit tests. I can run all the tests for a given package by calling
runtests('mypackage1', "IncludeSubpackages", true)
Is there an easy way to run all tests for all packages?
If I call
runtests(pwd, "IncludeSubfolders", true, "IncludeSubpackages", true)
No tests are run.
0 Kommentare
Akzeptierte Antwort
Andy Campbell
am 3 Dez. 2019
Bearbeitet: Andy Campbell
am 3 Dez. 2019
Hi Brian,
I definitely endorse Sean's suggestion to use projects. That said, this is good feedback since it seems you expected IncludeSubfolders to just work in this case. There are reasons for the current behavior, but we can take this feedback to the development team.
In the meantime, if you don't use Sean;s suggestion of putting it into a project, you should be able to create your suite as follows:
import matlab.unittest.TestSuite;
w = what(pwd);
suiteCell = cellfun(@(p) TestSuite.fromPackage(p, 'IncludingSubpackages',true), w.packages, 'UniformOutput', false)
suite = [suiteCell{:}];
run(suite);
Hope that helps!
Weitere Antworten (1)
Sean de Wolski
am 2 Dez. 2019
Bearbeitet: Sean de Wolski
am 2 Dez. 2019
Have you considered adopting projects? I'd recommend it (for most things and especially for this use case) then you can just create the TestSuite from all files in the project.
https://www.mathworks.com/help/releases/R2019b/matlab/ref/matlab.unittest.testsuite.fromproject.html
Otherwise, shy of manually appending multiple TestSuites I don't know a way. My team usually keeps all tests as classes optionally in subppackages of a parent +test package so it's obvious it's a test.
2 Kommentare
Siehe auch
Kategorien
Mehr zu Testing Frameworks finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!