我想使用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中运行它一样。

10-04 20:53