基于Netbeans的PHPUnit单元测试环境搭建

简介: 一、配置PHPUnit截至2015-10-16,稳定版已更新至5.0.6,要求使用PHP v5.6及以上的环境才能使用。PHPUnit的4.8系列要求在PHP v5.3.3以上环境使用。Netbeans从Sun被Oracle收购后,更新越来越慢。

一、配置

PHPUnit截至2015-10-16,稳定版已更新至5.0.6,要求使用PHP v5.6及以上的环境才能使用。

PHPUnit的4.8系列要求在PHP v5.3.3以上环境使用。

Netbeans从Sun被Oracle收购后,更新越来越慢。

经过一番摸索,Netbeans 8.0.1集成环境中支持的PHPUnit的版本是4.8以下的版本,即支持的最高版本为4.7.7。

注:最新的Netbeans 8.1环境中,已经可以支持最新的phpunit-5.2.10.phar、phpunit-skelgen-2.0.1.phar。

https://phar.phpunit.de 下载 https://phar.phpunit.de/phpunit-5.2.10.phar 以及脚手架工具 https://phar.phpunit.de/phpunit-skelgen-2.0.1.phar

然后在Netbeans中参数面板,切换到PHP项,在“框架和工具”中对PHPUnit进行路径指定。

img_86a759db374eb61a6fbafbf55866393a.png

二、使用

既然是集成开发环境,所有操作都是可以在Netbeans中完成的。

1.配置项目的PHPUnit参数

选择测试文件目录并勾选使用PHPUnit作为测试工具。

img_c00d8f1b7dae3926fcf70521b8aa1b66.png

勾选使用引导并点击生成按钮。

img_61e26d1ec38aa8aeb301f62ac88ca0f1.png

  1. 编辑启动文件

根据你所用的框架,编制测试环境启动文件的内容。

一般主要是类自动加载、环境变量初始化。

如 bootstrap.php:

<?php

require __DIR__ . '/../core/base/CAutoloader.php';

CAutoloader::register();

3.生成测试类

img_809b0bf1f004ee26a929458f7446f8f2.png

比如类文件内容:

<?php

class Demo {

    /**
     * @assert (11, 22) == 33
     * @assert (10, 11) == 21
     * @assert ('abc', 1) == 0
     * @param int $a
     * @param int $b
     * @return int
     */
    public function plus($a, $b) {
        return $a + $b;
    }

    public function subtract($a, $b) {
        return $a - $b;
    }

}

生成的测试类内容为:

<?php

/**
 * Generated by PHPUnit_SkeletonGenerator on 2015-10-16 at 02:23:33.
 */
class DemoTest extends PHPUnit_Framework_TestCase {

    /**
     * @var Demo
     */
    protected $object;

    /**
     * Sets up the fixture, for example, opens a network connection.
     * This method is called before a test is executed.
     */
    protected function setUp() {
        $this->object = new Demo;
    }

    /**
     * Tears down the fixture, for example, closes a network connection.
     * This method is called after a test is executed.
     */
    protected function tearDown() {
        
    }

    /**
     * Generated from @assert (11, 22) == 33.
     *
     * @covers Demo::plus
     */
    public function testPlus() {
        $this->assertEquals(
                33, $this->object->plus(11, 22)
        );
    }

    /**
     * Generated from @assert (10, 11) == 21.
     *
     * @covers Demo::plus
     */
    public function testPlus2() {
        $this->assertEquals(
                21, $this->object->plus(10, 11)
        );
    }

    /**
     * Generated from @assert ('abc', 1) == 0.
     *
     * @covers Demo::plus
     */
    public function testPlus3() {
        $this->assertEquals(
                0, $this->object->plus('abc', 1)
        );
    }

    /**
     * @covers Demo::subtract
     * @todo   Implement testSubtract().
     */
    public function testSubtract() {
        // Remove the following lines when you implement this test.
        $this->markTestIncomplete(
                'This test has not been implemented yet.'
        );
    }

}

其实际执行的命令为:

"/usr/bin/php" "/Applications/XAMPP/bin/phpunit-skelgen" "--ansi" "generate-test" "Demo" "/Volumes/Data/PHP/Library/uxf/core/base/Demo.php" "DemoTest" "/Users/apple/PHP/Library/uxf/test/core/base/DemoTest.php"

注:由于在Demo类中的注解部分使用了断言@assert,脚手架在生成测试类时,直接生成了相应的测试方法。

  1. 测试

img_9bd41a9f6523fc93871fa50004ea146b.png

测试结果会在相应面板输出:

img_dca69e284d01cbac3ca63f04d45e0e8b.png

其实际执行命令:

"/usr/bin/php" "/Volumes/Data/PHP/Library/phpunit-4.7.7.phar" "--colors" "--log-junit" "/var/folders/95/z2b73tg55795tq97k3qx6sd00000gn/T/nb-phpunit-log.xml" "--bootstrap" "/Users/apple/PHP/Library/uxf/test/bootstrap.php" "/Applications/NetBeans/NetBeans 8.0.app/Contents/Resources/NetBeans/php/phpunit/NetBeansSuite.php" "--run=/Users/apple/PHP/Library/uxf/test/core/base/DemoTest.php"

  1. 代码提示

Phar这种打包发布的方式,导致代码无法被IDE扫描索引形成提示。所以需要获取一份源码版的PHPUnit。

PHPUnit Github: https://github.com/sebastianbergmann/phpunit.git

DbUnit Github: https://github.com/sebastianbergmann/dbunit

PHPUnit Mock Objects Github: https://github.com/sebastianbergmann/phpunit-mock-objects

本地目录切换到4.7分支。

然后在项目的类包含设置中增加PHPUnit、DbUnit等库的本地目录。

img_79c914ff0b858fe32312646b4854ae96.png

以上即为NB中PHPUnit的基本配置和使用过程。

目录
相关文章
|
5月前
|
架构师 测试技术 网络性能优化
dpdk课程学习之练习笔记七(vpp环境搭建及plugin demo测试)
dpdk课程学习之练习笔记七(vpp环境搭建及plugin demo测试)
463 0
|
5月前
|
Ubuntu 测试技术 Linux
dpdk测试环境搭建(vmware下ubuntu环境参考上文汇总流程)
dpdk测试环境搭建(vmware下ubuntu环境参考上文汇总流程)
287 0
|
5月前
|
应用服务中间件 测试技术 nginx
dpdk环境搭建及运行helloworld测试
dpdk环境搭建及运行helloworld测试
264 0
|
12月前
|
存储 Oracle 关系型数据库
HBase集群环境搭建与测试(上)
HBase集群环境搭建与测试
228 0
|
5月前
|
分布式计算 Hadoop 测试技术
Hadoop【环境搭建 05】【hadoop-3.1.3 单机版基准测试 TestDFSIO + mrbench + nnbench + Terasort + sort 举例】
【4月更文挑战第1天】Hadoop【环境搭建 05】【hadoop-3.1.3 单机版基准测试 TestDFSIO + mrbench + nnbench + Terasort + sort 举例】
134 3
|
5月前
|
JavaScript Java 测试技术
『App自动化测试之Appium基础篇』| 从定义、原理、环境搭建、安装问题排查等深入了解Appium
『App自动化测试之Appium基础篇』| 从定义、原理、环境搭建、安装问题排查等深入了解Appium
2631 0
|
27天前
|
机器学习/深度学习 人工智能 文字识别
AI计算机视觉笔记二十:PaddleOCR环境搭建及测试
OCR技术广泛应用于日常生活中,与人脸识别一样常见。PaddleOCR是一个基于飞桨的OCR工具库,具有超轻量级中文OCR模型,支持中英文数字组合、竖排及长文本识别。本文档详细介绍了PaddleOCR的学习过程,包括环境搭建、安装、样本标注及测试步骤。使用AutoDL云平台进行环境创建,并提供了详细的命令行操作指南,帮助用户顺利完成PaddleOCR的部署与测试。
|
1月前
|
人工智能 PyTorch 算法框架/工具
AI计算机视觉笔记十四:YOLOV5环境搭建及测试全过程
本文详细记录了在Windows 10环境下从零开始搭建yolov5环境并进行测试的全过程,涵盖环境配置、依赖安装及模型测试等关键步骤。文章首先介绍了所需环境(Python 3.8、yolov5-5.0),接着详细说明了如何使用Miniconda3创建与激活虚拟环境,并通过具体命令演示了如何下载安装yolov5及相关依赖库。最后,通过一系列命令展示了如何下载预训练模型并对示例图像进行目标检测,同时解决了一些常见错误。适合初学者跟随实践。如需转载,请注明原文出处。
|
2月前
|
Web App开发 测试技术 API
Web自动化测试框架(基础篇)--Selenium WebDriver工作原理和环境搭建
本文详细介绍了Selenium WebDriver的工作原理,包括其架构、通信机制及支持的浏览器,并指导读者如何在Python环境下搭建Selenium WebDriver的测试环境,从安装Python和Selenium库到编写并运行第一个自动化测试脚本。
148 0
|
5月前
|
IDE Java 测试技术
【如何学习Python自动化测试】—— 自动化测试环境搭建
【如何学习Python自动化测试】—— 自动化测试环境搭建
下一篇
无影云桌面