exponenta event banner

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

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

Чтобы изучить различные способы выполнения тестов, создайте тест на основе класса и функциональный тест в текущей рабочей папке. Для тестового файла на основе класса используйте DocPolynomTest пример теста, представленного в matlab.unittest.qualifications.Verifiable пример. Для функционального тестового файла используйте axesPropertiesTest пример теста, представленного в разделе Write Test Using Setup and 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

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);

Запуск тестов с помощью настраиваемого тестового питателя

Можно специализироваться на выполнении теста, определяя пользовательский тестовый питатель и добавляя подключаемые модули. 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]);

См. также

| | |

Связанные темы