PhpUnit Netbeans 极简配置

Stella981
• 阅读 651

0x01. 下载两个 Phar 包:

wget https://phar.phpunit.de/phpunit.phar
wget https://phar.phpunit.de/phpunit-skelgen.phar

0x02. 让这两个包可执行

chmod +x phpunit.phar
chmod +x phpunit-skelgen.phar

0x03. 移动(或建立软连接)到你的环境变量的目录下

mv phpunit.phar /usr/local/bin/phpunit
mv phpunit-skelgen.phar /usr/local/bin/phpunit-skelgen

至此,PHPUnit 以及生成测试的框架,已经部署完毕。简单吧!

0x04. Netbeans 全局配置

菜单 --> 工具[Tools] --> 选项[Options] --> PHP --> Frameworks & Tools
选中左侧的 PHPUnit,设置 [PHPUnit Script] 与 [Skeleton Generator Script]
如果在你的 PATH 环境变量下,点击 [Search] 即可到,如果不在,自己填路径。
本例中,这两个路径分别为:
  /usr/local/bin/phpunit 
  /usr/local/bin/phpunit-skelgen 点击确定,退出配置

0x05. NetBeans 项目配置

在项目名称上右击 --> 属性[Properties] --> 测试[Testing]
添加测试目录。
展开左侧 测试[Testing] 树,点击 [PHPUnit]
勾选 [Use Bootstrap],然后选择启动脚本或点击[Generate]自动生成一个。
勾选 [Use Bootstrap for Creating New Unit Tests]

如果不勾选 [Use Bootstrap for Creating New Unit Tests],在生成有继承或实现接口的类时,会提示

Final Error: Interface ... not found in ...
Final Error: Class ... not found in ...

0x06. 修改 bootstrap.php

自动生成的 bootstrap.php 可能不大符合自己的实际要求,修改一下即可,它的作用一般是自动加载类库。比如你使用一些框架,加载自己的类,则把框架的 autoload.php 文件包含进来,把自己的 autoload.php 包含进来即可。比如:

<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * @author
 */
// TODO: check include path
//ini_set('include_path', ini_get('include_path'));

// put your code here
require __DIR__ . '../../../my/autoload.php';

0x07. 使用方法

在代码窗口选中要测试的文件,菜单 --> 工具[Tools] --> 生成测试[Create Tests]
或在项目窗口,选中要测试的文件,右键 --> 工具[Tools] --> 生成测试[Create Tests]

0x08. 附命令行使用方法

phpunit-skelgen

"/usr/bin/php" "/usr/local/bin/phpunit-skelgen" "--ansi" "generate-test" "--bootstrap=/path/to/bootstrap.php" "Namespace\MyClass" "/path/to/Namespace/MyClass.php" "Namespace\MyClassTest" "/path/to/Namespace/MyClassTest.php"

phpunit

"/usr/bin/php" "/usr/local/bin/phpunit" "--colors" "--log-junit" "/tmp/nb-phpunit-log.xml" "--bootstrap" "/path/to/bootstrap.php" "/path/to/netbeans-8.0/php/phpunit/NetBeansSuite.php" "--run=/path/to/test/Namespace/MyClassTest.php"
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
PhoneGap设置Icon
参考:http://cordova.apache.org/docs/en/latest/config\_ref/images.html通过config.xml中的<icon标签来设置Icon<iconsrc"res/ios/icon.png"platform"ios"width"57"height"57"densi
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这