在名为CEmpty<的单元测试类中考虑以下单元测试方法。 matlab.unittest.TestCase:
function test_must_fail (testCase)
testCase.verifyLessThan(2,1, 'test_must_fail() failed') ;
end
预期结果:
...
Actual double:
2
Maximum Value (Exclusive):
1
...
在MatLab R2015A中,我可以通过两种方式得到这个结果:
% first way:
tester = TEmpty() ;
tester.test_must_fail() ;
% second way
run (TEmpty, 'test_must_fail') ;
无论是谁,在R2015B中,只有第二种方式导致输出,而第一种方式不显示任何东西。此外,尝试将结果保存到变量:
tester = TEmpty() ;
test_result = tester.test_must_fail() ;
在2015A中运行正常,但会导致错误(“输出参数太多”。 )在R2015B。
在我开始更改代码之前: 1.你得到类似的结果,还是只有我(和我的同事)安装? 2.如果这是预期的行为,是否有一些简单的旁路(例如将某些配置设置为2015A模式)?
答案 0 :(得分:3)
这是一种预期的行为,是由于人们使用纯粹用于交互式使用的类的混淆而显示的,这些类显示看起来像失败但实际上不会在返回的TestResult上产生失败。
以下是相关的release note。
现在,您可以以更安全的方式执行此操作,通过使用新形式的TestCase.forInteractiveuse确保仅对交互式调试用例执行此操作。尝试:
tester = matlab.unittest.TestCase.forInteractiveUse(?TEmpty);
tester.test_must_fail();