如何增加 SimpleTest 的 HtmlReporter 的详细程度?
有时查看应用程序通过了哪些测试以及失败的测试是很方便的。
给出的输出仍然很丑陋,这就是我格式化输出的方式:
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());
}
}
好吧,看来我需要更多咖啡才能在 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; }';
}
}