2

我有一个用 php 制作的应用程序,它使用 selenium 使用 phpUnit 进行单元测试。问题是我必须先设置环境才能进行测试。例如。我必须设置会话变量、登录并从远程服务器获取数据。所有这些都需要花费大量时间,并且在每个测试功能中都重新设置它是不可行的。

我正在寻找一种方法,以便我可以使用相同的浏览器会话来运行其中的所有测试。我尝试在网上寻找资源,但找不到任何好的资源。我写的代码是

protected function setUp()
{
  parent::setUp();
  $this->setBrowserUrl("http://localhost/devel/");
}

public function start()
{
  parent::start();
  $this->open("");
  //Setting up the environment here
}

public function testFunction()
{
   //A test function
}

public function testFunction2()
{
   //Another test function
}

但这是为这两个功能打开浏览器实例。有什么解决方法吗?或者在为此启动 selenium 服务器时是否有任何命令行参数?

4

2 回答 2

0

问题已经回答了。不被接受的答案为我完成了工作。

@see如何在不为每个函数运行新的浏览器窗口的情况下运行 PHPUnit Selenium 测试?

于 2015-01-12T10:28:53.393 回答
0

“[我] 使用 selenium 使用 phpUnit 进行单元测试”

不你不是。您正在使用 PHPUnit 和 selenium 进行功能测试。:-)

但由于重新发明那个轮子可能不符合您的最佳利益,您需要 Mink: http: //mink.behat.org/

它围绕着 Guzzle,让您可以使用一堆不同的驱动程序进行基于会话的验收测试。它具有用于无头浏览器的 Goutte,并且可以与 Selenium 和 Sahi 以及其他一些浏览器一起使用。

另外值得注意的是,根据您的需要,Behat:http ://behat.org/

它使您可以编写客户端可读的测试文档,这些文档可以转换为基于 Mink 的验收测试。

HTH。

于 2013-08-18T02:20:58.080 回答