【问题标题】:Yii Goutte Functional Test Coverage Not Being RecordedYii Goutte 功能测试覆盖率未记录
【发布时间】:2014-07-12 11:54:39
【问题描述】:

功能测试覆盖率未记录 Goutte 网络爬虫调用的任何控制器。

<?php

use Goutte\Client;

class DummyTest extends PHPUnit_Framework_TestCase {

/**
 * Web Crawler
 * @var \Goutte\Client
 */
protected $client;

public function setUp() {
    parent::setUp();
    $this->client = new Client();
}

public function testActionIndex() {

    $call = yii::app()->params['siteUrl'] . 'site/index';
    $crawler = $this->client->request('POST', $call, array(), array(), array());
    $response = $this->client->getResponse()->getContent();

    $this->assertEquals(200, $this->client->getResponse()->getStatus());
}
//..

覆盖率报告显示测试本身已被覆盖。 我期待报告显示站点控制器中的索引操作也将被涵盖。

测试有效,并确定服务器响应为 200 OK。 我是否需要调整任何配置以允许 phpunit 跟随请求进入控制器/动作? - 我使用 PHP yii 框架并使用 netbeans 和 jenkins 进行测试

【问题讨论】:

    标签: yii jenkins phpunit functional-testing goutte


    【解决方案1】:

    在这种情况下无法计算代码覆盖率,因为您正在抓取您的网站。 调试器看到正在执行的唯一代码是测试本身、PHPUnit 和一些 Goutte 代码。您的控制器不是由运行 phpunit 的同一进程执行的。它正在由 Web 服务器执行,但 PHPUnit 无法注意到它。

    【讨论】:

    • 好点。有没有办法解决这个问题?我将需要获取标题,所以硒不会这样做。我知道 Symfony 可以做到这一点,但我不确定如何
    • 您可以像任何其他类一样运行控制器,方法是发送一个 Request 对象并检查您返回的 Response 对象,其中包含标头和内容。
    • 非常感谢您的回复。我会再深入一点,直接调用控制器而不是使用爬虫
    猜你喜欢
    • 2011-08-02
    • 2017-10-09
    • 2017-02-21
    • 2021-03-25
    • 2018-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多