我想使用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()中)。
我在这里有点过头了,所以任何帮助都将不胜感激。
如果我能提供任何其他有用的信息,请告诉我。
乔希
最佳答案
我在文档中找不到任何东西,但代码似乎与您一致。
在run method(第289行)中,没有调用setupbeforeclass(或任何其他可能调用setupbeforeclass的方法)的迹象。
如果你认为这是个问题,我建议在PHPUnit/Extensions/SeleniumTestCase.php
上开一张票。
对于解决方法,可以在phpunits issue tracker
中使用静态属性,如下所示:
protected function setUp() {
static $db = null;
if($db === null) {
$db = whatevery_you_do_there();
}
$this->db = $db;
}
这应该是可行的,就像你在
setUp
中运行它一样。