模块化PHPUnit Selenium2测试的最佳方法是什么?

时间:2013-10-31 17:33:43

标签: php selenium-webdriver

我正在使用Selenium2TestCase对象在网站上运行某些测试。我正在尝试将这些测试模块化,以便于编写和新的测试和可读性。

由于我对Selenium WD和PHPUnit的了解有限以及在线提供的有用信息明显缺乏,我已经开始将测试分解为单独的“页面”对象。我不知道这是否是最佳解决方案,或者技术上是否可行。

这是我目前所拥有的简化版本......

class Selenium2TestCase_Extension extends PHPUnit_Extensions_Selenium2TestCase
{
    public function testPages(){

        $pages = array('about', 'contact');

        foreach($pages as $page){

            // Can I instantiate and run the tests in About_Test from here???
        }
    }
}

class About_Test extends PHPUnit_Extensions_Selenium2TestCase 
{
    public function testTitle(){
        $this->url('/about');

        $this->assertEquals("About Us", $this->title());
    }

}

class Home_Test extends PHPUnit_Extensions_Selenium2TestCase
{
    public function testTitle(){
        $this->url('/home');

        $this->assertEquals("Welcome", $this->title());
    }

}

我不确定我是否在这里尝试不可能或者什么,所以任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

是的,您可以使用execsystem或类似内容。但似乎这不是正确的方式。

XY problem吗?

你可以

  1. 使用groups启动一些测试。
  2. 将这些测试存储在一个单独的文件夹中,然后使用command-line interface对其进行测试。
  3. 仅使用command-line interface运行想要的测试。
  4. (在您的情况下)使用data provider并仅编写一个测试。