本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

matlab.unittest.plugins.ToFile 类

包: matlab.unittest.plugins
超类: matlab.unittest.plugins.OutputStream

将文本输出写入文件的输出流

说明

ToFile 类创建一个输出流,该流将文本输出写入一个 UTF-8 编码文件。每当文本输出到此流时,该输出流即会打开该文件,追加文本并关闭该文件。

构造

matlab.unittest.plugins.ToFile(fname) 创建一个将文本输出写入 fname 文件的 OutputStream

输入参数

fname

要写入输出文本的文件的名称,指定为字符向量或字符串标量。如果 fname 存在,则将来自流中的文本追加到该文件中。

属性

Filename

从插件重定向文本输出的文件的名称,在输入参数 fname 中指定。

复制语义

句柄。要了解句柄类如何影响复制操作,请参阅复制对象

示例

全部折叠

在您的工作文件夹中,创建包含以下测试类的文件 ExampleTest.m

classdef ExampleTest < matlab.unittest.TestCase
    methods(Test)
        function testOne(testCase)  % Test fails
            testCase.verifyEqual(5, 4, 'Testing 5==4')
        end
        function testTwo(testCase)  % Test passes
            testCase.verifyEqual(5, 5, 'Testing 5==5')
        end
        function testThree(testCase)
            % test code
        end
    end
end

testOne 中的 verifyEqual 验证导致测试失败。testOnetestTwo 中的验证包括 matlab.unittest.diagnostics.StringDiagnostic 实例。

在命令提示符下,基于 ExampleTest 类创建测试套件。

import matlab.unittest.TestRunner
import matlab.unittest.TestSuite
import matlab.unittest.plugins.TAPPlugin
import matlab.unittest.plugins.ToFile

suite   = TestSuite.fromClass(?ExampleTest);

创建一个将输出显示到命令行窗口中的测试运行程序。

runner = TestRunner.withTextOutput;

创建一个 TAPPlugin,它显式指定其输出应定向到 MyTapOutput.tap 文件。

filename = 'MyTapOutput.tap';
plugin = TAPPlugin.producingOriginalFormat(ToFile(filename));

将该插接添加到 TestRunner 并运行套件。

runner.addPlugin(plugin)
result = runner.run(suite);
Running ExampleTest

================================================================================
Verification failed in ExampleTest/testOne.

    ----------------
    Test Diagnostic:
    ----------------
    Testing 5==4

    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyEqual failed.
    --> The values are not equal using "isequaln".
    --> Failure table:
                Actual    Expected    Error    RelativeError
                ______    ________    _____    _____________
            
                5         4           1        0.25         
    
    Actual double:
             5
    Expected double:
             4

    ------------------
    Stack Information:
    ------------------
    In C:\work\ExampleTest.m (ExampleTest.testOne) at 4
================================================================================
...
Done ExampleTest
__________

Failure Summary:

     Name                 Failed  Incomplete  Reason(s)
    ==================================================================
     ExampleTest/testOne    X                 Failed by verification.

只有测试失败才在屏幕上产生输出。默认情况下,TestRunner.withTextOutput 使用 DiagnosticsOutputPlugin 在屏幕上显示输出。

观察该插件创建的文件中的内容。

disp(fileread(filename))
1..3
not ok 1 - ExampleTest/testOne
# ================================================================================
# Verification failed in ExampleTest/testOne.
# 
#     ----------------
#     Test Diagnostic:
#     ----------------
#     Testing 5==4
# 
#     ---------------------
#     Framework Diagnostic:
#     ---------------------
#     verifyEqual failed.
#     --> The values are not equal using "isequaln".
#     --> Failure table:
#                 Actual    Expected    Error    RelativeError
#                 ______    ________    _____    _____________
#             
#                 5         4           1        0.25         
#     
#     Actual double:
#              5
#     Expected double:
#              4
# 
#     ------------------
#     Stack Information:
#     ------------------
#     In C:\work\ExampleTest.m (ExampleTest.testOne) at 4
# ================================================================================
# 
ok 2 - ExampleTest/testTwo
ok 3 - ExampleTest/testThree

在 R2014a 中推出