forked from WEC-Sim/WEC-Sim
-
Notifications
You must be signed in to change notification settings - Fork 1
/
wecSimTest.m
101 lines (90 loc) · 3.77 KB
/
wecSimTest.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Copyright 2014 National Renewable Energy Laboratory and National
% Technology & Engineering Solutions of Sandia, LLC (NTESS).
% Under the terms of Contract DE-NA0003525 with NTESS,
% the U.S. Government retains certain rights in this software.
%
% Licensed under the Apache License, Version 2.0 (the "License");
% you may not use this file except in compliance with the License.
% You may obtain a copy of the License at
%
% http://www.apache.org/licenses/LICENSE-2.0
%
% Unless required by applicable law or agreed to in writing, software
% distributed under the License is distributed on an "AS IS" BASIS,
% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
% See the License for the specific language governing permissions and
% limitations under the License.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% wecSimTest runs WEC-Sim continuous integration testing suite.
%
% results = wecSimTest returns a matlab.unittest.TestResult object
%
% results = wecSimTest(..., NAME1, VALUE1, NAME2, VALUE2, ...) returns
% a matlab.unittest.TestResult object, depending on the values of the
% optional parameter name/value pairs. See Parameters below.
%
% Parameters
% ----------
% 'bemioTest' Run tests for BEMIO. Default is true.
%
% 'regressionTest' Run regression tests. These tests check if values
% have changed from a previous run. Default is true.
%
% 'compilationTest' Run compilation tests. These tests do not check
% correctness of the results. Default is true.
%
% 'runFromSimTest' Run tests for execution of WECSim from Simulink.
% Default is true.
%
% 'rotationTest' Run rotation tests. Default is true.
%
% 'devTest' Run developer focussed tests. Default is true.
%
% Users should also run the appropriate applications tests when
% creating a PR into the WEC-Sim repository.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function results = wecSimTest(options)
arguments
options.bemioTest = true
options.regressionTest = true
options.compilationTest = true
options.runFromSimTest = true
options.rotationTest = true
options.devTest = true
end
% Import MATLAB unittest
import matlab.unittest.TestSuite
import matlab.unittest.Test
import matlab.unittest.TestRunner
import matlab.unittest.plugins.DiagnosticsRecordingPlugin
import matlab.unittest.plugins.CodeCoveragePlugin
% Define the tests
suites = Test.empty();
if options.bemioTest
suites = [suites TestSuite.fromFile('tests/bemioTest.m')];
end
if options.regressionTest
suites = [suites TestSuite.fromFile('tests/regressionTest.m')];
end
if options.runFromSimTest
suites = [suites TestSuite.fromFile('tests/runFromSimTest.m')];
end
if options.rotationTest
suites = [suites TestSuite.fromFile('tests/rotationTest.m')];
end
if options.devTest
suites = [suites TestSuite.fromFolder('tests/devTests')];
end
% Create TestRunner
runner = TestRunner.withTextOutput; % Contains TestRunProgressPlugin,
% DiagnosticsOutputPlugin
runner.addPlugin(DiagnosticsRecordingPlugin);
runner.addPlugin(CodeCoveragePlugin.forFolder( ...
'./source', ...
'IncludingSubfolders', ...
true));
% Run the tests
results = runner.run(suites);
results.table
end