matlab.unittest.plugins.TestReportPlugin.producingHTML

Класс: matlab.unittest.plugins.TestReportPlugin
Пакет: matlab.unittest.plugins

Плагин построений, который производит .html отчет

Описание

matlab.unittest.plugins.TestReportPlugin.producingHTML создает плагин, который производит .html отчет результатов испытаний во временной папке. В той папке основным файлом отчета является index.html. Если вы повторно выполняете тестовый набор с этим плагином, то MATLAB® перезаписывает содержимое в папке.

Этот синтаксис эквивалентен matlab.unittest.plugins.TestReportPlugin.producingHTML(tempname).

пример

matlab.unittest.plugins.TestReportPlugin.producingHTML(htmlFolder) сохраняет отчет в htmlFolder папка.

matlab.unittest.plugins.TestReportPlugin.producingHTML(___,Name,Value) создает плагин с дополнительными опциями, заданными одним или несколькими Name,Value парные аргументы. Можно использовать этот синтаксис с любым из аргументов от предыдущих синтаксисов.

Входные параметры

развернуть все

Выведите папку в виде вектора символов или строкового скаляра. htmlFolder может быть относительный или абсолютный путь. По умолчанию, в папке, основным файлом отчета является index.html. Чтобы изменить название основного файла, используйте 'MainFile' аргумент пары "имя-значение".

Пример: 'TestRunOutput'

Пример: 'C:\myWork\testResults'

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: TestReportPlugin.producingHTML('myTestOutput','MainFile','main.html') создает плагин, что выходные параметры заканчиваются к myTestOutput папка, с основным файлом с именем main.html вместо index.html.

Основной HTML имя файла в виде вектора символов или строкового скаляра.

Пример: 'main.html'

Включайте текст Command Window в отчет в виде false или true. По умолчанию, IncludingCommandWindowText false и вывод текста из Командного окна исключен из отчета. Чтобы включать текст Command Window в отчет, задайте IncludingCommandWindowText как true.

Типы данных: логический

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

Типы данных: логический

Максимальный уровень, в который регистрируемая диагностика включена сменным экземпляром в виде целочисленного значения от 0 до 4, matlab.unittest.Verbosity объект перечисления, или строковый скаляр или вектор символов, соответствующий одному из предопределенных имен элемента перечисления. Плагин включает диагностику, которая регистрируется на этом уровне и ниже. Целочисленные значения соответствуют членам matlab.unittest.Verbosity перечисление.

Числовое представлениеИмя элемента перечисленияОписание многословия
0None

Никакая информация

1Terse

Минимальная информация

2Concise

Умеренный объем информации

3Detailed

Некоторая дополнительная информация

4Verbose

Большая дополнительная информация

По умолчанию плагин включает диагностику, регистрируемую в matlab.unittest.Verbosity.Terse уровень (уровень 1). Чтобы исключить регистрируемую диагностику, задайте LoggingLevel как Verbosity.None (уровень 0).

Регистрируемая диагностика является диагностикой, которую вы предоставляете к среде тестирования вызов log (TestCase) или log (Fixture) метод.

Примеры

развернуть все

Создайте тестовый набор из двух тестовых файлов, запустите набор и сгенерируйте .html отчет результатов.

Создайте новый файл в своей рабочей папке под названием ScriptBasedTest.m содержа следующий тестовый скрипт. Скрипт включает два сбоя и неполные тесты.

%% Test double class
expSolution = 'double';
actSolution = ones;
assert(isa(actSolution,expSolution))

%% Test single class
expSolution = 'single';
actSolution = ones('single');
assert(isa(actSolution,expSolution))

%% Test uint16 class
expSolution = 'uint16';
actSolution = ones('uint16');
assert(isa(actSolution,expSolution))

%% Test that fails
assert(false==true);

%% Another test that fails
assert(strcmp('correlation','causation'))

Создайте файл с именем ClassBasedTest.m содержа следующий тестовый класс. Класс включает провальный тест, который, с параметризацией, приводит к девяти проваленным тестам.

classdef ClassBasedTest < matlab.unittest.TestCase
    properties (ClassSetupParameter)
        generator = {'twister','combRecursive','multFibonacci'};
    end
    properties (MethodSetupParameter)
        seed = {0,123,4294967295};
    end
    properties (TestParameter)
        dim1 = struct('small',1,'medium',2,'large',3);
        dim2 = struct('small',2,'medium',3,'large',4);
        dim3 = struct('small',3,'medium',4,'large',5);
        type = {'single','double'};
    end
    methods (TestClassSetup)
        function ClassSetup(testCase,generator)
            orig = rng;
            testCase.addTeardown(@rng,orig)
            rng(0, generator)
        end
    end
    methods (TestMethodSetup)
        function MethodSetup(testCase,seed)
            orig = rng;
            testCase.addTeardown(@rng,orig)
            rng(seed)
        end
    end
    methods (Test, ParameterCombination='sequential')
        function testSize(testCase,dim1,dim2,dim3)
            testCase.verifySize(rand(dim1,dim2,dim3),[dim1 dim2 dim3])
        end 
    end
    methods (Test, ParameterCombination='pairwise')
        function testRepeatable(testCase,dim1,dim2,dim3)
            state = rng;
            firstRun = rand(dim1,dim2,dim3);
            rng(state)
            secondRun = rand(dim1,dim2,dim3);
            testCase.verifyEqual(firstRun,secondRun);
        end
    end
    methods (Test)
        function testClass(testCase,dim1,dim2,type)
            testCase.verifyClass(rand(dim1,dim2,type),type)
        end
    end
end

В командной строке создайте тестовый набор из обоих тестовых файлов.

import matlab.unittest.TestRunner;
import matlab.unittest.TestSuite;
import matlab.unittest.plugins.TestReportPlugin;

suite = testsuite({'ScriptBasedTest','ClassBasedTest'})
suite = 

  1×284 Test array with properties:

    Name
    ProcedureName
    TestClass
    BaseFolder
    Parameterization
    SharedTestFixtures
    Tags

Tests Include:
   17 Unique Parameterizations, 0 Shared Test Fixture Classes, 0 Tags.

Создайте тихого исполнителя тестов, так, чтобы не было никакого вывода информации к Командному окну. Создайте TestReportPlugin это генерирует .html протокол испытаний в папке под названием myResults.

runner = TestRunner.withNoPlugins;
htmlFolder = 'myResults';
plugin = TestReportPlugin.producingHTML(htmlFolder);

Добавьте плагин в TestRunner и запустите набор.

runner.addPlugin(plugin);
result = runner.run(suite)
Generating report. Please wait.
    Preparing content for the report.
    Adding content to the report.
    Writing report to file.
Report has been saved to: C:\work\myResults\index.html

result = 

  1×284 TestResult array with properties:

    Name
    Passed
    Failed
    Incomplete
    Duration
    Details

Totals:
   282 Passed, 2 Failed, 2 Incomplete.
   1.6712 seconds testing time.

Откройте протокол испытаний путем нажатия на имя сохраненного файла. В этом примере именем файла является C:\work\myResults\index.html.

Введенный в R2017b