【问题标题】:How to get debug output from Codeception Unit Tests?如何从 Codeception 单元测试中获取调试输出?
【发布时间】:2014-01-27 23:27:05
【问题描述】:

我可能在这里很厚,但我不知道如何获得有关测试失败原因的一些信息。

例如我有这个测试,可以检查我们是否没有任何没有测试的新方法......

//TEST ALL METHODS TESTED
public function testAllMethodsTested()
{
    $temp = $this->class_namespace.substr(__CLASS__, 0, -5);
    $class_methods = get_class_methods($temp);
    $test_methods = get_class_methods(__CLASS__);

    foreach($class_methods as $class_method) 
    {
        $this->assertEquals(true, in_array('test_'.$class_method, $test_methods));
    }
}

如果失败,我会得到类似...

1) c_functions_core_ext_Test::testAllMethodsTested
Failed asserting that false matches expected true.

为了更容易查看去哪里修复一些代码,我想在控制台和 report.html 中获得一些有用的调试输出(就像你在验收测试中获得的那样)...

1) some_class_Test::testAllMethodsTested
Checking test exists for some_class::someMethod
Failed asserting that false matches expected true.

单元测试可以这样做吗?

【问题讨论】:

    标签: phpunit codeception


    【解决方案1】:

    是的,我很厚。似乎断言函数允许指定您自己的消息...

    //TEST ALL METHODS TESTED
    public function testAllMethodsTested()
    {
        $target_class = $this->class_namespace.substr(__CLASS__, 0, -5);
        $class_methods = get_class_methods($target_class);
        $test_methods = get_class_methods(__CLASS__);
    
        $result = in_array('test_'.$class_method, $test_methods);
    
        //FAIL WITH A USEFUL ERROR
        $this->assertTrue($result, 'There is no test for '.$target_class.'::'.$class_method);
    }
    

    当这失败时,我现在得到类似...

    1) c_functions_core_ext_Test::testAllMethodsTested
    There is no test for Namespace\target_class::someMethodName
    Failed asserting that false matches expected true.
    

    【讨论】:

      猜你喜欢
      • 2017-02-05
      • 1970-01-01
      • 2020-01-30
      • 2016-08-06
      • 2020-01-09
      • 1970-01-01
      • 2016-04-19
      • 2011-01-09
      • 1970-01-01
      相关资源
      最近更新 更多