exponenta event banner

класс matlab.unittest.plugins.ToUniqueFile

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

Выходной поток для записи текстовых выходных данных в уникальный файл

Описание

ToUniqueFile создает выходной поток, который записывает выходные данные в уникальный UTF-8 кодированный файл. При печати текста в этом потоке выходной поток открывает файл, добавляет текст и закрывает файл. Каждый экземпляр ToUniqueFile создает файл с уникальным именем. Этот выходной поток полезен для параллельного выполнения тестов при перенаправлении выходных данных в файл.

MATLAB ® создает уникальное имя файла для выходного потока, но можно указать префикс и расширение файла.

Строительство

matlab.unittest.plugins.ToUniqueFile(folder) создает OutputStream записывает выходные данные текста в уникальный файл в указанной папке.

matlab.unittest.plugins.ToUniqueFile(folder,Name,Value) создает уникальный файл с дополнительными параметрами, заданными одним или несколькими Name,Value аргументы пары. Можно указать несколько аргументов пары имя-значение в любом порядке как Name1,Value1,...,NameN,ValueN.

Входные аргументы

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

Имя существующей папки, указанное как вектор символа или скаляр строки. Выходной поток записывает данные в файл в folder.

Пример: 'myOutput'

Пример: pwd

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

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

Пример: matlab.unittest.plugins.ToFile(pwd,'WithPrefix','myOutput_') создает выходной поток, который записывает в файл в текущей рабочей папке, которая начинается с 'myOutput_'.

Префикс для имени файла, указанный как вектор символов или скаляр строки.

Пример: 'outputA _'

Расширение имени файла, указанное как вектор символа или скаляр строки. По умолчанию имя файла имеет расширение '.txt'. Расширения должны начинаться с точки.

Пример: '.xml'

Свойства

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

Полное имя файла для перенаправления текста, выводимого из плагина, возвращаемого в виде строкового скаляра.

Копирование семантики

Ручка. Сведения о том, как классы обработки влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

Создайте выходные данные TAP для набора тестов, которые выполняются параллельно. Чтобы инфраструктура не перезаписывала TAP-файл, направляйте выходные данные из каждой группы тестов в уникальный файл. Для параллельного выполнения тестов в этом примере требуется Toolbox™ Parallel Computing.

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

classdef TestRand < matlab.unittest.TestCase
    properties (TestParameter)
        dim1 = createDimensionSizes;
        dim2 = createDimensionSizes;
        dim3 = createDimensionSizes;
        type = {'single','double'};
    end
    
    methods (Test)
        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
        function testClass(testCase,dim1,dim2,type)
            testCase.verifyClass(rand(dim1,dim2,type),type)
        end
    end
end

function sizes = createDimensionSizes
    % Create logarithmicly spaced sizes up to 100
    sizes = num2cell(round(logspace(0,2,10)));
end

В командной строке создайте папку для выходных файлов.

mkdir myOutput

Создание пакета из TestRand.m и испытательный питатель с высоким выходом. Комплект содержит 1200 тестовых элементов.

suite = matlab.unittest.TestSuite.fromClass(?TestRand);
runner = matlab.unittest.TestRunner.withTextOutput('OutputDetail',1);

Создание экземпляра потока, записывающего в уникальный файл в myOutput папка. Затем создайте TAPPlugin и направляют выходной сигнал в поток. Каждый созданный файл начинается с 'myTapFile_' и заканчивается '.tap' расширение.

import matlab.unittest.plugins.ToUniqueFile;
import matlab.unittest.plugins.TAPPlugin;

stream = ToUniqueFile('myOutput','WithPrefix','myTapFile_','WithExtension','.tap');
plugin = TAPPlugin.producingOriginalFormat(stream);

Добавьте подключаемый модуль в тестовый питатель и запустите тестовый пакет параллельно. Тестовые группы и имена выходных файлов могут различаться.

runner.addPlugin(plugin);
result = runner.runInParallel(suite);
Split tests into 18 groups and running them on 6 workers.
----------------
Finished Group 5
----------------
..................................................
.......................

----------------
Finished Group 6
----------------
..................................................
.....................

----------------
Finished Group 4
----------------
..................................................
........................

----------------
Finished Group 1
----------------
..................................................
............................

----------------
Finished Group 3
----------------
..................................................
..........................

----------------
Finished Group 2
----------------
..................................................
...........................

----------------
Finished Group 7
----------------
..................................................
....................

----------------
Finished Group 8
----------------
..................................................
...................

-----------------
Finished Group 11
-----------------
..................................................
...............

----------------
Finished Group 9
----------------
..................................................
.................

-----------------
Finished Group 12
-----------------
..................................................
.............

-----------------
Finished Group 10
-----------------
..................................................
................

-----------------
Finished Group 16
-----------------
..................................................
........

-----------------
Finished Group 18
-----------------
..................................................
....

-----------------
Finished Group 17
-----------------
..................................................
.......

-----------------
Finished Group 13
-----------------
..................................................
............

-----------------
Finished Group 14
-----------------
..................................................
...........

-----------------
Finished Group 15
-----------------
..................................................
.........

Просмотр выходных файлов в myOutput папка. Поскольку MATLAB запускал тесты в 18 группах, инфраструктура создала 18 экземпляров ToUniqueFile выходной поток. Имеется 18 связанных выходных файлов.

dir myOutput
.                                                   
..                                                  
myTapFile_22dc996d-e1e9-44e2-af3a-e8e9c68c6941.tap  
myTapFile_2de69eb4-591f-4456-9890-31626e57792f.tap  
myTapFile_3e88b1fb-5679-4489-b9c9-a2b22ac76cb1.tap  
myTapFile_4b660dae-9e33-4e89-bd1b-27c874749476.tap  
myTapFile_56d584a8-2bf2-4677-ad25-5f268628c179.tap  
myTapFile_632c3723-c300-40a6-8ffa-a7dbd0d07d65.tap  
myTapFile_66276292-5062-489a-9219-cc2664f48fb8.tap  
myTapFile_78d69693-720a-4a14-86b3-de687b1ddf91.tap  
myTapFile_7df3915c-60de-4c7f-8968-b5260d4c2933.tap  
myTapFile_827a6d46-54c6-4ee3-bfbb-0d46d4024fcf.tap  
myTapFile_97af3692-7b4a-4f80-a81a-96fc0f86beed.tap  
myTapFile_9cb0cdb1-4f30-40a0-8f5f-51da8af7bb86.tap  
myTapFile_b8820e56-7c92-41eb-b040-94f55399766b.tap  
myTapFile_c1bfd286-7fa4-4365-b456-4babf2a995da.tap  
myTapFile_c53c2906-14a7-41eb-a87c-d1fd727e6d9e.tap  
myTapFile_decbc713-84c0-4139-b3e4-d2b8c2e273bf.tap  
myTapFile_e1687147-f8a7-4f6d-aea0-a3e885246dd6.tap  
myTapFile_f78c98a7-6c14-4981-ae03-fc8ffbeddaf8.tap  
Представлен в R2018a