PHP SimpleTest HtmlReporter详细报告传递

时间:2012-06-05 21:28:55

标签: php unit-testing tdd simpletest

我怎样才能增加SimpleTest的HtmlReporter的详细程度?

除了失败的测试之外,有时候查看应用程序通过哪些测试也很方便。

2 个答案:

答案 0 :(得分:2)

给出的输出仍然非常难看,这是我格式化输出的方式:

class ShowPasses extends HtmlReporter {
    var $tests = array();

    function paintPass($message) {
        parent::paintPass($message);
        $pass =  "<span class=\"pass\">Pass</span>: ";
        $breadcrumb = $this->getTestList();
        array_shift($breadcrumb);
        if(!in_array($breadcrumb[1],$this->tests))
        {
            echo "<h2><u>".$breadcrumb[1]."</u><h2>";
            $this->tests[] = $breadcrumb[1];
        }
        echo "<h4>$pass".$breadcrumb[2]."</h4>";
    }

    function _getCss() {
        return parent::_getCss() . ' .pass { color: green; }';
    }
}

class AllTests extends TestSuite {
    function AllTests() {
        $this->TestSuite('All tests');
        $this->addFile(dirname(__FILE__).'/testRequest.php');
        $this->addFile(dirname(__FILE__).'/testTraductor.php');
        $this->addFile(dirname(__FILE__).'/testReservar.php');

        //para poder usar por consola
        //$this->run(new TextReporter());
        $this->run(new ShowPasses());
    }
}

答案 1 :(得分:1)

好吧,好吧,为了在谷歌取得成功,我似乎需要更多的咖啡;)

他们实际上在一个教程中回答了我的问题,只是一个严重索引的问题。

要点是我们只是扩展一个HtmlReporter并定义我们的报告功能。他们为什么不把它作为一种选择,它让我感到困惑。

http://simpletest.org/en/display_subclass_tutorial.html

class ShowPasses extends HtmlReporter {

    function paintPass($message) {
        parent::paintPass($message);
        print "<span class=\"pass\">Pass</span>: ";
        $breadcrumb = $this->getTestList();
        array_shift($breadcrumb);
        print implode("->", $breadcrumb);
        print "->$message<br />\n";
    }

    protected function getCss() {
        return parent::getCss() . ' .pass { color: green; }';
    }
}