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.

Типы данных: logical

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

Типы данных: logical

Максимальный уровень, на котором регистрируемая диагностика включена в образец плагина, заданный как целое значение от 0 до 4, a 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