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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

Пример: 'outputA _'

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

Пример: '.xml'

Свойства

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

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

Примеры

свернуть все

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

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

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 и исполнителя тестов с кратким выводом. Комплект содержит 1 200 тестовых элементов.

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

Для просмотра документации необходимо авторизоваться на сайте