我有一些测试套件(PHPUnit-Selenium、PHPUnit),我想按特定顺序运行它们。所以我想运行“安装( Selenium 驱动)”测试套件,然后运行“单元测试”测试套件。我知道我应该避免单元测试中的依赖关系,但我的问题不是这个(我使用一个有很多依赖关系的旧应用程序,我需要安装并用 selenium 测试这个安装然后运行单元测试等)。
因此,我不需要为我的“测试用例”指定特定顺序,这没问题,但仅适用于我的“测试套件”。这是我的 phpunit.xml 配置文件:
<phpunit backupGlobals="false">
<selenium>
<browser name="Firefox" browser="*firefox" timeout="600" />
</selenium>
<testsuites>
<testsuite name="install (selenium driven)">
<file>./_install.php</file>
<exclude>./bin</exclude>
</testsuite>
<testsuite name="unit tests">
<directory>./</directory>
<exclude>./selenium</exclude>
</testsuite>
</testsuites>
</phpunit>
所以当我运行 phpunit 时,它似乎不等待“安装( Selenium 驱动)”结果,所以“单元测试”失败(MySQL 错误,但没关系)。我该如何处理?我想要两个单独的步骤:
其他信息:
backupGlobals=false,对不起,我不能 :( ...bootstrap 选项,但我需要“测试”安装(所以它是一个测试套件)如果你有线索,非常感谢! (我试图找到一个解决方案,但我现在没有找到任何...)
最佳答案
Steven Scott 关于使用批处理文件和两个配置文件的评论是我会做的。它遵循 Unix 哲学,即使用简单的工具将简单的工具串在一起,而不是一个大而复杂的工具包罗万象。
这是一个替代方案,基于对“安装”不仅进行功能测试,而且还设置单元测试所需的数据库和其他固定装置的猜测。那么,如何将功能测试移动到单元测试套件内的 setupBeforeClass() 调用。使用 shell_exec() 运行 phpunit 来运行功能测试,如果失败,则调用 die 或类似的,这样单元测试就不会运行。
附言你听起来好像你知道自己在做什么,但对于后来的人来说:当你有机会时,应该重构单元测试以使用模拟数据库,以便它们可以首先运行,并且经常运行。仍然保留您现有的单元测试套件,但将其合并到功能测试套件中,因为它听起来像是属于它的地方。事实上(合并两个测试套件然后在各处显式使用 @depends)是另一种方法。
关于PHPUnit : Execute testSuites in specific order,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20195029/
我编写了一个API,它从另一个API获取数据并将其转换为XML。我如何使用phpunit来测试输出是否为预期的XML且是否有效?我应该创建一个包含所有节点的示例xml,然后根据它检查输出吗? 最佳答案 这是我认为可以批准的搜索结果,适用于遇到测试生成的xml供给器函数/类这个问题的任何人。有很多方法可以测试xml输出是否正确,有些方法比其他方法更容易。我最近完成了一个与OP此时询问的脚本类似的脚本。如果您从一个函数中得到以下部分xml输出(我们称之为$person->output()):bluecurly第一个想法是使用您必须生成x
我如何选择要执行的特定测试套件?$phpunit--configurationconfig.xml配置文件:librarylibrary/XXX/FormTest.phplibrary/XXX/Form 最佳答案 这是PHPUnit3.7.13的代码$phpunit--configurationconfig.xml--testsuiteLibrary$phpunit--configurationconfig.xml--testsuiteXXX_Form如果你想运行一组测试套件,那么你可以这样做librarylibrary/XXX/F
我正在按照这些说明操作:WindowsGloballyinstallingthePHARinvolvesthesameprocedureasmanuallyinstallingComposeronWindows:CreateadirectoryforPHPbinaries;e.g.,C:\binAppend;C:\bintoyourPATHenvironmentvariable(relatedhelp)Downloadhttps://phar.phpunit.de/phpunit-6.2.pharandsavethefileasC:\bin\phpunit.pharOpenacomma
我不喜欢使用PEAR方法,所以我决定使用另一种方法,但是,我仍然无法制作一个完美的.bat文件以在两种情况下运行。我下载了phpunit.phar和我添加到PATH中的路径=>C:\dev例如C:\dev\phpunit.phar我还在C:\dev\phpunit.bat中创建了一个phpunit.bat文件,这允许我在任何环境下运行phpunit地方。这是phpunit.bat的内容@echooffphpc:\dev\phpunit.phar当我使用guard-phpunit时,我的运行结果非常完美。但是,问题是当我想将参数/参数传递给phpunit时它不起作用。例如,我在C:\te
所有说明都是关于PEARmethodwhichisnowdeprecated的.那么我们如何安装它才能使用WAMP从命令行运行phpUnit? 最佳答案 好的,PeterPopelyshko找到了解决方案。是documentedunderthewindowssection.我把它简化了一点:1)复制了phpunit.phar文件到php目录例如。c:\wamp\bin\php\php5.4.12\,因为php目录已经在我的PATH环境中了2)在同一目录中从命令行运行以下命令:echo@php"%~dp0phpunit.phar"%*
我有Windows7,通过以下说明安装phpunit:https://phpunit.de/manual/current/en/installation.html并且在常规cmd终端上工作正常,但是phpunit在从git-scm安装的windowsgitbash终端中无法识别。我主要是一名Linux开发人员,所以在Windows上设置这些东西对我来说有点陌生。 最佳答案 使用aliasnative会好很多。编辑~/.bashrc,在其中添加这些:aliasphpunit="php/C/Tools/php/phpunit.phar"
我有一个PHPUnit测试,它使用正则表达式验证日志文件的输出。日志文件看起来像这样(第一行是空的,但我不知道如何在这里显示):lfworker01:-----------------------------------------------------------Lastupdate:2012-06-1411:43:17LastSegmentSent:2009-12-0223:25:00(1259792700)CurrentSegement:2009-12-0300:25:00(1259796300)ClicksprocessedSegment:3OpensessionsSegme
我已经尝试在Windows7上安装phpunit,但我遇到了这样的问题:C:\wamp\bin\php\php5.3.13>pearchannel-discovercomponents.ez.noAddingChannel"components.ez.no"succeededDiscoveryofchannel"components.ez.no"succeededC:\wamp\bin\php\php5.3.13>pearchannel-discoverpear.phpunit.deChannel"pear.phpunit.de"isalreadyinitializedC:\wamp\
这个问题在这里已经有了答案:phpunitcommanddoesn'tworkforlaravel4onwindows7(11个答案)关闭7年前。我想在我的本地Windows机器上运行phpunit测试..(使用wamp)..我已经全局安装了composer..并且phpunit安装在我的本地目录..文件夹结构.._________tests||||______PagesTest.php||________vendor||______bin||_____phpunit在我的localroot(www)上..我创建了一个phpunit.xml文件.../tests/在Cmd上我试过:C:
我已经在本地Windows机器和远程Linux服务器上安装了PHPUnit。我能够从Netbeans在本地运行PHPUnit。我的下一步是使用Netbeans触发PHPUnit.bat脚本来:-SSH到远程服务器-从那里运行PHPUnit我可以手动使用PLink到SSH并从远程服务器的PHPUnit运行中取回输出。关于如何配置PHPUnit.bat脚本来执行此操作的任何想法? 最佳答案 如果这有帮助:用于从netbeans7.4远程运行phpunit的Windows脚本:phpunit.bat@echooff::==========