Запуск тестов для различных рабочих процессов

Настройте примеры тестов

Чтобы исследовать различные способы запуска тестов, создайте тест на основе классов и тест на основе функций в текущей рабочей папке. Для тестового файла на основе классов используйте DocPolynomTest пример теста, представленный в matlab.unittest.qualifications.Verifiable пример. Для функционального тестового файла используйте axesPropertiesTest Пример теста, представленного в Write Test Using Setup и Teardown Functions.

Запуск всех тестов в классе или функции

Используйте run метод TestCase класс, чтобы непосредственно запустить тесты, содержащиеся в одном тестовом файле. При непосредственном запуске тестов вам не нужно явно создавать Test массив.

% Directly run a single file of class-based tests
results1 = run(DocPolynomTest); 

% Directly run a single file of function-based tests
results2 = run(axesPropertiesTest);

Можно также назначить выход тестового файла переменной и запустить тесты с помощью функциональной формы или записи через точку.

% Create Test or TestCase objects
t1 = DocPolynomTest;      % TestCase object from class-based test
t2 = axesPropertiesTest;  % Test object from function-based test

% Run tests using functional form
results1 = run(t1); 
results2 = run(t2);

% Run tests using dot notation
results1 = t1.run; 
results2 = t2.run;

Также можно запустить тесты, содержащиеся в одном файле, используя runtests или из редактора.

Запуск одиночного теста в классе или функции

Запустите один тест из основанного на классах тестового файла, указав метод тестирования как входной параметр для run способ. Для примера запустите только тест, testMultiplication, из DocPolynomTest файл.

results1 = run(DocPolynomTest,'testMultiplication');

Функциональные тестовые файлы возвращают массив Test объекты вместо одной TestCase объект. Можно запустить конкретный тест путем индексации в массив. Однако необходимо изучить Name поле в тестовом массиве, чтобы убедиться, что вы запустили правильный тест. Для примера запустите только тест, surfaceColorTest, из axesPropertiesTest файл.

t2 = axesPropertiesTest;  % Test object from function-based test
t2(:).Name
ans =

axesPropertiesTest/testDefaultXLim


ans =

axesPropertiesTest/surfaceColorTest

The surfaceColorTest тест соответствует второму элементу массива.

Запускает только surfaceColorTest тест.

results2 = t2(2).run; % or results2 = run(t2(2));

Также можно запустить один тест из редактор.

Запуск набора тестов по имени

Можно запускать группу или набор тестов вместе. Чтобы запустить тестовый набор с помощью runtests, набор определяется как массив ячеек из векторов символов, представляющих тестовый файл, тестовый класс, пакет, содержащий тесты или папку, содержащую тесты.

suite = {'axesPropertiesTest','DocPolynomTest'};
runtests(suite);

Запустите все тесты в текущей папке, используя pwd как вход в runtests функция.

 runtests(pwd);

Также можно явным образом создать Test Массивы и используйте run способ их запуска.

Запуск набора тестов из тестового массива

Можно явно создать Test Массивы и используйте run метод в TestSuite класс, чтобы запустить их. Используя этот подход, вы явным образом задаете TestSuite объекты и, следовательно, могут исследовать содержимое. runtests функция не возвращает TestSuite объект.

import matlab.unittest.TestSuite
s1 = TestSuite.fromClass(?DocPolynomTest);
s2 = TestSuite.fromFile('axesPropertiesTest.m');

% generate test suite and then run
fullSuite = [s1 s2];
result = run(fullSuite); 

Поскольку набор явно определен, вам легко выполнить последующий анализ пакета, например повторить неудачные тесты.

failedTests = fullSuite([result.Failed]);
result2 = run(failedTests);

Запуск тестов с настраиваемым исполнителем тестов

Вы можете специализироваться на тестовом запуске, определив пользовательский исполнитель тестов и добавив плагины. The run метод TestRunner класс действует на TestSuite объект.

import matlab.unittest.TestRunner
import matlab.unittest.TestSuite
import matlab.unittest.plugins.TestRunProgressPlugin

% Generate TestSuite.
s1 = TestSuite.fromClass(?DocPolynomTest);
s2 = TestSuite.fromFile('axesPropertiesTest.m');
suite = [s1 s2];

% Create silent test runner.
runner = TestRunner.withNoPlugins;

% Add plugin to display test progress.
runner.addPlugin(TestRunProgressPlugin.withVerbosity(2))

% Run tests using customized runner.
result = run(runner,[suite]);

См. также

| | |

Похожие темы