1

如何增加 SimpleTest 的 HtmlReporter 的详细程度?

有时查看应用程序通过了哪些测试以及失败的测试是很方便的。

4

2 回答 2

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());
    }
}
于 2016-01-22T15:42:56.560 回答
1

好吧,看来我需要更多咖啡才能在 Google 取得成功;)

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

要点是我们只需扩展一个 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; }';
    }
}
于 2012-06-05T21:43:40.210 回答