适用于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)==016.* assert(0,1)==117.* assert(1,0)==118.* assert(1,1)==219.* assert(1,2)==420.*/ 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)==06.* assert(0,1)==17.* assert(1,0)==18.* assert(1,1)==29.* assert(1,2)==410.*/ 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 |