phpunit 和 symfony2:如何断言来自客户端或响应的查询数量?
phpunit and symfony2 : how to assert number of queries from client or response?
我正在使用 symfony2 和 phpunit 进行测试。
是否有类似的东西:
$client->getResponse()->getNumberOfQueries()
如果不是类似的东西,从响应中检索查询数量的方法是什么?
我想快速检查一下我没有优化查询的地方。
编辑:我的变量 $profile
似乎总是 null
/**
* @dataProvider urlProvider
* @param $url
*/
public function testPageIsSuccessful($url)
{
$client = self::createClient(array(), array(
'PHP_AUTH_USER' => 'xx',
'PHP_AUTH_PW' => 'xx',
));
$client->enableProfiler();
$client->followRedirects();
$client->request('GET', $url);
$this->assertEquals(200, $client->getResponse()->getStatusCode());
if ($profile = $client->getProfile())
{
$this->assertLessThan(10, $profile->getCollector('db')->getQueryCount());
}
}
在 lmy config_dev.yml:
web_profiler:
toolbar: true
intercept_redirects: false
仍在获取:
Fatal error: Call to a member function getCollector() on a non-object in D:\Divers\Programmation\Web\xxx\src\AppBundle\Tests\Controller\ApplicationAvailabilityFunctionalTest.php on line 59
在功能测试中,您可以访问探查器,并获取在请求期间进行的查询数量:
class HelloControllerTest extends WebTestCase
{
public function testIndex()
{
$client = static::createClient();
$client->enableProfiler();
$crawler = $client->request('GET', '/hello/Fabien');
$this->assertLessThan(30, $profile->getCollector('db')->getQueryCount());
}
}
确保分析器配置为在您的测试环境中收集分析数据:
# app/config/config_test.yml
# ...
framework:
profiler:
enabled: true
collect: true
从“How to Use the Profiler in a Functional Test”食谱中了解更多信息。
我正在使用 symfony2 和 phpunit 进行测试。
是否有类似的东西:
$client->getResponse()->getNumberOfQueries()
如果不是类似的东西,从响应中检索查询数量的方法是什么?
我想快速检查一下我没有优化查询的地方。
编辑:我的变量 $profile
似乎总是 null
/**
* @dataProvider urlProvider
* @param $url
*/
public function testPageIsSuccessful($url)
{
$client = self::createClient(array(), array(
'PHP_AUTH_USER' => 'xx',
'PHP_AUTH_PW' => 'xx',
));
$client->enableProfiler();
$client->followRedirects();
$client->request('GET', $url);
$this->assertEquals(200, $client->getResponse()->getStatusCode());
if ($profile = $client->getProfile())
{
$this->assertLessThan(10, $profile->getCollector('db')->getQueryCount());
}
}
在 lmy config_dev.yml:
web_profiler:
toolbar: true
intercept_redirects: false
仍在获取:
Fatal error: Call to a member function getCollector() on a non-object in D:\Divers\Programmation\Web\xxx\src\AppBundle\Tests\Controller\ApplicationAvailabilityFunctionalTest.php on line 59
在功能测试中,您可以访问探查器,并获取在请求期间进行的查询数量:
class HelloControllerTest extends WebTestCase
{
public function testIndex()
{
$client = static::createClient();
$client->enableProfiler();
$crawler = $client->request('GET', '/hello/Fabien');
$this->assertLessThan(30, $profile->getCollector('db')->getQueryCount());
}
}
确保分析器配置为在您的测试环境中收集分析数据:
# app/config/config_test.yml
# ...
framework:
profiler:
enabled: true
collect: true
从“How to Use the Profiler in a Functional Test”食谱中了解更多信息。