假设失败生产过滤测试。在里面matlab.unittest.testresult.
类,这样的测试标记为不完整
。
由于通过使用假设过滤测试内容不会产生测试失败,因此它具有创建死亡测试代码的可能性。避免这种情况需要监视过滤的测试。
如果在a内遇到假设故障测试用例
方法与测试
属性,整个方法被标记为过滤,但MATLAB®运行随后的测试
方法。
以下类包含其中一个方法中的假设失败测试
堵塞。
Classdef.exampletest方法(测试)功能testa(testcase)testcase.verifytrue(true)结尾功能testb(testcase)testcase.assumeequal(0,1)%剩余的测试代码不会锻炼结尾功能testc(testcase)testcase.verifyfalse(true)结尾结尾结尾
自从此以来testb.
方法包含假设故障,当您运行测试时,测试框架过滤器测试并将其标记为不完整。假设失败后testb.
,测试框架进行并执行testc.
,包含验证失败。
ts = matlab.unittest.testsuite.fromclass(?exampletest);res = ts.run;
正在运行的excepletest。================================================================================过滤了Excepletest / testb。细节================================================================================。================================================================================验证失败在excepletest / testc中失败。---------------------框架诊断:---------------------verifyFalse失败了。- >值必须评估为“false”。实际逻辑:1 ----------------堆栈信息:-----------------在C:\ Work \ exampletest中.m(exampletest.testc)在11 ================================================================================。完成__________失败摘要:名称失败不完整原因(s)================================================================通过假设过滤的Excepletest / testb x。 ---------------------------------------------------------------- ExampleTest/testC X Failed by verification.
如果你检查测试结果
,您注意到由于假设故障而导致的测试失败测试和未完成的测试。
res.
RES = 1×3 TestResult数组具有属性:名称传递失败的不完整持续时间详细信息总计:1传递,1失败,1个不完整。2.4807秒测试时间。
测试框架会跟踪不完整的测试,以便您可以监视过滤的无限测试代码的测试。您可以查看有关这些测试的信息测试结果
目的。
Res([res.incomplete])
ans = testResult属性:名称:'exampletest / testb'传递:0失败:0不完整:1持续时间:2.2578详细信息:[1×1结构]总计:0传递,0失败,1个不完整。2.2578秒测试时间。
要仅从筛选的测试中创建修改后的测试套件,请从原始测试套件中选择不完整的测试。
TSFiltered = TS([Res.Incomplete])
tsfiltered = test属性:名称:'exampletest / testb'程序:'testb'testclass:“exampletest”basefolder:'c:\ works'参数化:[0×0 matlab.unittest.parameters.preparameter] SharedTestFixtures:[0×0×0 matlab.unittest.fixtures.emptyfixture]标签:{1×0小区}测试包括:0参数化,0个共享测试夹具类,0标记。
如果在内部遇到假设故障测试用例
方法与testmethodetup.
属性,MATLAB过滤该实例要运行的方法。如果测试使用来自内部的假设testmethodetup.
阻止,考虑使用假设testclasssetup.
块,同样过滤所有测试
在课堂上的方法但不太详细,更有效。
以下方法之一testmethodetup.
块内exampletest.m.
包含假设失败。
方法(testmethodetup)功能setupmethod1(testcase)testcase.assumeequal(1,0)%剩余的测试代码不会锻炼结尾功能setupmethod2(testcase)disp('*运行setupmethod2 *')testcase.asterqual(1,1)结尾结尾
运行测试时,您会看到框架完成执行所有方法testmethodetup.
块不包含假设故障,而且它标记为所有方法测试
堵塞。
ts = matlab.unittest.testsuite.fromclass(?exampletest);res = ts.run;
运行示例================================================================================过滤了excepletest / testa。细节================================================================================ *运行setupmethod2 *。================================================================================过滤了Excepletest / testb。细节================================================================================ *运行setupmethod2 *。================================================================================过滤了exceletest / testc。细节================================================================================ * Running setupMethod2 * . Done ExampleTest __________ Failure Summary: Name Failed Incomplete Reason(s) ================================================================ ExampleTest/testA X Filtered by assumption. ---------------------------------------------------------------- ExampleTest/testB X Filtered by assumption. ---------------------------------------------------------------- ExampleTest/testC X Filtered by assumption.
这测试
方法没有改变,但由于假设失败,所有3都被过滤testmethodetup.
堵塞。测试框架执行方法testmethodetup.
块没有假设失败,例如setupmethod2.
。正如预期的那样,测试框架执行setupmethod2.
3次,每次一次测试
方法。
如果在a内遇到假设故障测试用例
方法与testclasssetup.
或者testclassteardown.
属性,matlab过滤整个测试用例
班级。
以下方法testclasssetup.
块内exampletest.m.
包含假设失败。
方法(TestClassSetup)功能setupclass(testcase)testcase.assumeequal(1,0)%剩余的测试代码不会锻炼结尾结尾
运行测试时,您会看到框架不执行任何方法testmethodetup.
或者测试
。
ts = matlab.unittest.testsuite.fromclass(?exampletest);res = ts.run;
运行示例================================================================================过滤了excepletest中的所有测试。细节================================================================================完成考试__________失败摘要:姓名失败不完整原因(s)================================================================通过假设过滤的Exampletest / testa x。------------------------------------------------------------------------------ exampletest / testb x通过假设过滤。------------------------------------------------------------------------------ exampletest / testc x通过假设过滤。
这测试
和testmethodetup.
方法没有改变,但由于假设失败,所有内容都被过滤testclasssetup.
堵塞。
matlab.unittest.qualification.Assubable.
|matlab.unittest.testcase.
|matlab.unittest.testresult.