我想使用setUpBeforeClass()来设置数据库连接,并进行一些日志记录,但是在我的测试执行之前(或者根本就没有)调用它。 我有以下内容:
class TestSetup extends PHPUnit_Extensions_SeleniumTestCase {
public static function setUpBeforeClass() {
//do some setup stuff here for all my tests
}
protected function setUp() {
$this->setBrowserUrl('http://' . $this->deviceIp);
}
protected function testOne() {
//do a test here
}
protected function testTwo() {
//do a test here
}
}
我做了一些深入研究PHPUnit / Frameworks / TestSuite.php,并确认在660行,$ this-> testCase是bool(false)。但我无法弄清楚它是否应该是真的或应该发生在哪里(除了在__construct()中)。
我在这里稍微偏头,所以任何帮助都会非常感激。
如果我能提供任何其他有用的信息,请告诉我。
约什
答案 0 :(得分:4)
我在文档中找不到任何内容,但代码似乎与您同意。
在PHPUnit/Extensions/SeleniumTestCase.php
run方法(第289行)中,没有调用setUpBeforeClass(或任何其他方法可能会这样做)的迹象。
如果您考虑到这个问题,我建议您在phpunits issue tracker
上开票。
对于解决方法,您可以在setUp
中使用静态属性,如下所示:
protected function setUp() {
static $db = null;
if($db === null) {
$db = whatevery_you_do_there();
}
$this->db = $db;
}
应该有用,好像你在setUpBeforeClass()