时间:2017-3-30来源:本站原创作者:佚名

适用于PHP的NetBeansIDE支持PHPUnit自动测试。通过PHPUnit,NetBeansIDE可为PHP提供代码覆盖率,这与IDE为Python提供的代码覆盖率类似。测试输出将显示在功能丰富的输出窗口中,该窗口与IDE的JUnit和Python测试运行器所使用的输出窗口相同。

NetBeansIDE还支持将Selenium可移植测试框架与PHPUnit结合使用。Selenium插件可以从更新中心获取。安装此插件会将Selenium服务器添加到IDE的已注册服务器中,并将Selenium测试选项添加到PHP菜单。

目录

安装PHPUnit

创建并运行PHPUnit测试

使用测试组

测试结果和IDE输出

代码覆盖率

使用项目特定的配置

在Selenium框架上运行测试

要学习本教程,您需要具备以下软件和资源。

软件或资源

要求的版本

NetBeansIDE

PHP下载包

PHP引擎,包括PEAR

版本5。

Web服务器

推荐使用ApacheHTTPServer2.2。

PHPUnit

版本3.4.0或更高版本。

PHPUnit的框架生成器

作为PHPUnit的版本。

安装PHPUnit

使用PEAR安装PHPUnit(如PHPUnit文档中所述)和PHPUnit的框架生成器(如框架生成器文档中所述)。应安装PHPUnit版本3.4.0或更高版本。无需任何特殊设置。安装PHPUnit之后,NetBeans便可识别它。请注意,您需要将PEAR随PHP引擎一起安装。另请注意,PHPUnit文档中指出PHPUnit通常会安装到本地PEAR目录。该文档还给出了具体的路径:/usr/lib/php/PHPUnit;但在适用于Windows的XAMPP上,此路径为XAMPP_HOME\php\PEAR\PHPUnit。

要检查NetBeansIDE是否可以识别您的PHPUnit安装,请打开Tools(工具)Options(选项)(在Mac上,请打开NetBeansPreferences(NetBeans首选项))并查看PHP窗口。打开UnitTesting(单元测试)标签。此时应显示您的PHPUnit和框架生成器脚本的路径。如果没有显示脚本,请单击空字段旁边的Search(搜索)。IDE将在您的本地系统中搜索该脚本。或者,单击Browse(浏览)浏览查找脚本。

创建并运行PHPUnit测试

NetBeansIDE可以对某个文件中的所有PHP类创建并运行PHPUnit测试。为确保测试生成器可以正常运行,请为PHP文件指定与该文件中的第一类相同的名称。

为某个类创建并运行PHPUnit测试:

创建一个名为Calculator的PHP项目。在此项目中,创建一个名为Calculator.php的文件。在此文件中,键入或粘贴PHPUnit文档的SkeletonGenerator(框架生成器)一章中所提供的Calculator类。

2.?php

3.classCalculator

4.{

5.publicfunctionadd($a,$b)

6.{

7.return$a+$b;

8.}

9.}

?

添加一个包含

assert标注以及一些样例输入和输出的注释块。请注意,本示例中包括一个错误的断言。

11.?php

12.classCalculator

13.{

14./**

15.*

assert(0,0)==0

16.*

assert(0,1)==1

17.*

assert(1,0)==1

18.*

assert(1,1)==2

19.*

assert(1,2)==4

20.*/

21.publicfunctionadd($a,$b)

22.{

23.return$a+$b;

24.}

25.}

?

注:您可以使用标注代码完成来添加

assert标注。使用Tab键在参数之间导航,或者在填写参数值后单击Enter。

在Projects(项目)窗口中,右键单击Calculator.php节点,然后选择Tools(工具)CreatePHPUnitTests(创建PHPUnit测试)。请注意,您可以在SourceFiles(源文件)节点的上下文菜单中为项目中的所有文件创建测试。

第一次创建测试时,将会打开一个对话框,询问您要存储测试文件的目录。在本示例中,使用“浏览”功能创建了tests目录。

注:您可以手动为一个项目编写多个测试。如果编写多个测试,可以将它们分类到测试文件目录的子文件夹中,例如important或quick。然后,可以通过右键单击某个子文件夹并选择RunTests(运行测试),来运行该文件夹中的测试。

IDE在一个名为CalculatorTest.php的文件中生成框架测试类,在Projects(项目)窗口中会显示该文件,并在编辑器中将其打开。

请注意,将为每个

assert标注创建一个测试。

/**

*Generatedfrom

assert(1,1)==2.

*/

publicfunctiontestAdd4()

{

$this-assertEquals(

2,

$this-object-add(1,1)

);

}

您既可以测试单个文件,也可以测试整个项目。要测试项目,请右键单击项目的父节点,然后选择Test(测试)或按Alt-F6组合键。要测试Calculator.php文件,请右键单击该文件的节点,然后选择Test(测试),或者按Ctrl-F6/?-F6组合键。本示例只有一个文件,且该文件中只有一个类,因此两种测试结果相同。IDE会运行测试并在TestResults(测试结果)窗口中显示结果。

测试结果的更详细文本版本会显示在Output(输出)窗口中。

使用测试组

您可以选择要在测试套件运行期间执行的测试组。例如,可能有一些测试您希望只在生产环境中运行,而另一些测试在生产和开发环境中同时运行。您可以将前一种测试放在production组中,而将后一种测试同时放在production和development组中。在开发环境中运行测试套件时,可以选择只执行development测试组。

必须首先对PHP项目启用测试组,然后才能对该项目中的所有文件使用测试组。

要将测试标记为测试组的一部分,请使用

group[groupname]来标注测试方法。

创建和运行测试组:

在Projects(项目)窗口中,右键单击Calculator节点,然后选择Properties(属性)。ProjectProperties(项目属性)打开。

在ProjectProperties(项目属性)中,选择PhpUnit类别。选择AskforTestGroupsBeforeRunningTests(在运行测试之前询问测试组)。单击OK(确定)。

在编辑器中打开CalculatorTest.php。

为testAdd、testAdd3和testAdd5方法添加标注

groupproduction。

对于方法testAdd2和testAdd4,添加标注

groupproduction和

groupdevelopment。

右键单击Calculator.php节点,然后选择Test(测试)。此时将会打开一个对话框,询问您要运行哪些测试组。选择development,然后单击OK(确定)。IDE只运行使用

groupdevelopment标注的测试。

有关NetBeansIDE中PhpUnit测试组的详细信息,请参见NetBeansIDEforPHP博客帖子:UsingPHPUnitTestGroups(使用PHP单元测试组)。

测试结果和IDE输出

PHPUnit测试的结果会显示在IDE的TestResults(测试结果)和Output(输出)两个窗口中。TestResults(测试结果)窗口包含一个图形窗格和一个简短文本窗格。“Output(输出)窗口提供了输出的更详细文本版本。在此部分,您将详细了解TestResults(测试结果)窗口和Output(输出)窗口。

在TestResults(测试结果)窗口中,您可以从下列位置获取有关失败的测试的信息:

UI窗格中失败测试的树条目所附带的消息

右侧窗格中的文本,其中包括指向失败的测试代码行的链接

将光标悬停在UI窗格中失败的测试上时显示的工具提示文本

TestResults(测试结果)窗口在左侧包括以下按钮:

重新运行测试按钮

显示失败的测试

显示通过的测试

显示通过但出错的测试

导航至下一个测试结果的按钮,以及导航至上一个测试结果的按钮

Output(输出)窗口显示PHPUnit脚本的完整输出。当您无法通过TestResults(测试结果)窗口中的信息找出错误原因时,该窗口会非常有用。与TestResults(测试结果)窗口类似,Output(输出)窗口包括指向失败的测试类行的链接。它还在左侧包括用于重新运行测试和用于打开PHPOptions(PHP选项)窗口的按钮。

代码覆盖率

适用于PHP的NetBeansIDE提供了代码覆盖率以及PHPUnit支持。(IDE也为Python提供了代码覆盖率)。代码覆盖率检查PHPUnit测试是否覆盖了所有方法。在此部分,您将了解如何通过现有Calculator类来使用代码覆盖率。

使用代码覆盖率:

打开Calculator.php,然后添加内容与add函数相同的add2函数。现在,Calculator类将如下所示:

2.?php

3.classCalculator{

4./**

5.*

assert(0,0)==0

6.*

assert(0,1)==1

7.*

assert(1,0)==1

8.*

assert(1,1)==2

9.*

assert(1,2)==4

10.*/

11.publicfunctionadd($a,$b){

12.return$a+$b;

13.}

14.

15.publicfunctionadd2($a,$b){

16.return$a+$b;

17.}

18.

19.}

20.?

右键单击项目节点。从上下文菜单中,选择CodeCoverage(代码覆盖率)CollectandDisplayCodeCoverage(收集并显示代码覆盖率)。默认情况下,ShowEditorBar(显示编辑器栏)也会处于选定状态。

现在,编辑器会在底部显示代码覆盖率编辑器栏。由于尚未测试代码覆盖率,因此编辑器栏报告覆盖率为0%。(在单击Clear(清除)以清除测试结果后,编辑器栏也会显示覆盖率为0%。)

单击Test(测试)以测试打开的文件,或单击AllTests(所有测试)以运行项目的所有测试。此时显示TestResults(测试结果)。此外,CodeCoverage(代码覆盖率)栏会告知您测试所覆盖的可执行代码语句百分比。在编辑器窗口中,覆盖的代码将以绿色突出显示,未覆盖的代码将以红色突出显示。

警告:如果在添加add2函数之后重新生成测试文件,则不会运行PHPUnit测试。这是因为PHPUnit创建了两个冲突的testAdd2函数。如果您计划对多个此类函数使用PHPUnit,则不要通过在末尾附加数字的方式来区分函数。请参见PHPUnit文档。

在编辑器栏中,单击Report...(报告...)。代码覆盖率报告打开,其中显示了对项目运行的所有测试的结果。使用报告中的按钮,您可以清除结果,再次运行所有测试或取消激活代码覆盖率(单击Done(完成))。

您可以在项目中添加其他类;删除测试文件,然后重新创建测试文件;接下来,再次查看代码覆盖率报告。此时将会列出新类。在下面的报告中,Calculator类又有一个函数未包括在测试中。

使用项目特定的配置

在IDE中,可以为项目选择以下定制配置:

引导文件

XML配置文件

测试套件

定制PHPUnit脚本

要设置项目特定的配置,请执行以下操作:

右键单击项目节点或项目的TestFiles(测试文件)节点,然后选择Properties(属性)。这会打开Properties(属性)对话框。

选择PHPUnit类别。此时将打开一个对话框,可以在其中选择定制引导、XML配置、PHPUnit脚本或测试套件文件。

如果您不熟悉引导或XML配置文件的结构,可以使用NetBeansIDE生成框架。您还可以通过单击Help(帮助)查找有关使用该对话框的说明。

使用定制类加载器的项目需要引导选项,例如,通过实现Magic函数__autoload()。如果需要预先包含一个文件(如定义项目中的多个类所使用的全局常量的文件),则也需要使用引导选项。

可通过XML配置文件定义命令行调用中使用的选项。PHPUnit手册中进行了完整介绍。还可以使用XML配置文件为测试用例定义php.ini设置和全局变量。也可以在XML配置文件中设置引导选项。

如果设置定制测试套件,每次选择Run(运行)TestProject(测试项目)时,都会运行该套件。如果要仅运行一部分测试,或者要使用最近添加(必须手动添加)的PHPUnit功能(如数据提供器),该功能特别有用。请注意,您可以根据需要定义多个测试套件,并通过在项目资源管理器中右键单击文件并选择run(运行)来分别运行这些套件。为防止造成混乱,NetBeans会通知您是否使用定制测试套件。可以在TestResults(测试结果)和Output(输出)窗口中找到通知。

可以将定制PHPUnit脚本(而非Tools(工具)Options(选项)中所选的默认脚本)用于项目。定制PHPUnit脚本可以包含PHPUnit手册中描述的任何命令行开关。









































白癜风能治好吗
北京公立看白癜风医院

转载请注明原文网址:http://www.coolofsoul.com/phptx/phptx/16161.html
------分隔线----------------------------