matlab.unittest.plugins.QualifyingPlugin class

Пакет: matlab.unittest.plugins
Суперклассы: matlab.unittest.plugins.TestRunnerPlugin

Интерфейс для плагинов, которые выполняют проверки в масштабе всей системы

Описание

Используйте плагины квалификации, чтобы произвести непройденные тесты кроме вашего содержания теста. Проверки на сменном уровне полезны, потому что можно постараться не повторять ту же проверку в каждом тесте. Можно решить применить проверки в масштабе всей системы к тестовому набору периодически путем простого добавления плагина в исполнителя тестов для конкретного сеанса тестирования.

QualifyingPlugin интерфейс позволяет авторам плагина исполнителя тестов реализовать плагины, которые выполняют проверки в масштабе всей системы на тестовом наборе. Можно выполнить верификации, предположения, утверждения и критические утверждения в этих унаследованных методах:

  • setupTestClass

  • teardownTestClass

  • setupTestMethod

  • teardownTestMethod

Можно выполнить только предположения, утверждения и критические утверждения в этих унаследованных методах:

  • setupSharedTestFixture

  • teardownSharedTestFixture

Методы

assertUsingУтверждайте, что значение удовлетворяет данному ограничению
assumeUsingПримите, что значение удовлетворяет данному ограничению
fatalAssertUsingФатально утверждайте, что значение удовлетворяет данному ограничению
verifyUsingПроверьте, что значение удовлетворяет данному ограничению

Унаследованные методы

createSharedTestFixtureРасширение создания разделяемых экземпляров испытательного стенда
createTestClassInstanceРасширьте создание уровня класса TestCase экземпляры
createTestMethodInstanceРасширьте создание уровня метода TestCase экземпляры
reportFinalizedResultПозвольте сообщить завершенных результатов испытаний
reportFinalizedSuiteРасширьте создание отчетов завершенного TestSuite массив
runSessionРасширьте выполнение сеанса тестирования
runTestРасширьте выполнение одного Test элемент
runTestClassРасширьте выполнение Test элементы от того же класса или функции
runTestMethodРасширьте выполнение одного метода тестирования
runTestSuiteРасширенная работа TestSuite массив
setupSharedTestFixtureРасширьте подготовку разделяемого испытательного стенда
setupTestClassРасширьте подготовку тестового класса
setupTestMethodРасширьте подготовку метода тестирования
teardownSharedTestFixtureРасширьте разъединение разделяемого испытательного стенда
teardownTestClassРасширьте разъединение тестового класса
teardownTestMethodРасширьте разъединение метода тестирования

Примеры

свернуть все

Создайте плагин, чтобы гарантировать, что тестовые файлы оставляют MATLAB® неизменный путь. Если путь после выполнения тестового файла отличается от стартового пути, тестовых сбоев.

Создайте класс, VerifyNoPathChangePlugin, это наследовалось matlab.unittest.plugins.QualifyingPlugin класс.

classdef VerifyNoPathChangePlugin < matlab.unittest.plugins.QualifyingPlugin
    properties (Access=private)
        OriginalPath
    end
    
    methods (Access=protected)
        function setupTestClass(plugin, pluginData)
            plugin.OriginalPath = path;
            setupTestClass@matlab.unittest.plugins.QualifyingPlugin(plugin,pluginData);
        end
        function teardownTestClass(plugin, pluginData)
            import matlab.unittest.constraints.IsEqualTo;
            teardownTestClass@matlab.unittest.plugins.QualifyingPlugin(plugin,pluginData);
            plugin.verifyUsing(pluginData.QualificationContext, ...
                path, IsEqualTo(plugin.OriginalPath), ...
                sprintf('%s modified the path.', pluginData.Name));
        end
    end
end

Создайте следующий тестовый класс. Тест изменяет путь, но не восстанавливает исходный путь.

classdef LeavesModifiedPath < matlab.unittest.TestCase
    methods (Test)
        function test1(~)
            addpath(pwd);
        end
    end
end

В целях этого примера, в командной строке, удаляют существующую рабочую папку из пути.

rmpath(pwd)

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

suite = matlab.unittest.TestSuite.fromClass(?LeavesModifiedPath);
runner = matlab.unittest.TestRunner.withTextOutput;
runner.addPlugin(VerifyNoPathChangePlugin);
runner.run(suite);
Running LeavesModifiedPath
.
================================================================================
Verification failed while setting up or tearing down LeavesModifiedPath.
As a result, all LeavesModifiedPath tests failed.

    ----------------
    Test Diagnostic:
    ----------------
    LeavesModifiedPath modified the path.

    ---------------------
    Framework Diagnostic:
    ---------------------
    IsEqualTo failed.
    --> StringComparator failed.
        --> The character arrays are not equal.
    
    Actual char:
        C:\work;C:\Program Files\MATLAB\R2015b\toolbox\matlab\...
   Expected char:
        C:\Program Files\MATLAB\R2015b\toolbox\matlab\...

    ------------------
    Stack Information:
    ------------------
    In C:\work\VerifyNoPathChangePlugin.m (VerifyNoPathChangePlugin.teardownTestClass) at 14
================================================================================

Done LeavesModifiedPath
__________

Failure Summary:

     Name                      Failed  Incomplete  Reason(s)
    =======================================================================
     LeavesModifiedPath/test1    X                 Failed by verification.
Введенный в R2015b