我目前要从头开始使用phpunit测试项目.所以我正在研究一些项目(比如Zend),看看他们是如何做的以及他们如何组织他们的测试.
大多数事情都很清楚,只有我遇到的一些问题是如何正确组织测试套件.Zend有一个AllTests.php,从中加载其他测试套件.
艰难地查看它正在使用的类PHPUnit_Framework_TestSuite来创建一个套件对象然后添加其他套件,但如果我查看PHPUnit文档在3.4之后的PHPUnit版本中组织测试,那么只有XML或FileHierarchy的描述.使用类来组织测试的那个被删除了.
我没有发现任何不推荐使用此方法的内容,以及像Zend这样的项目仍在使用它.
但是如果它被弃用,我怎么能用xml配置在相同的结构中组织测试?执行所有测试都没有问题,但如果我只想执行一些测试,我将如何组织测试(在xml中).也许创建几个xmls,我只指定要运行的几个测试/测试套件?
因此,如果我只想测试应用程序的module1和module2,我是否每个都有一个额外的xml,并且仅为那些模块(模块使用的类)定义测试套件.还有一个为所有测试定义测试套件的?
或者@group,在特定测试中使用注释将它们标记为module1或module2 会更好吗?
提前感谢您指出一些最佳做法.
我目前正在尝试在php中实现一个作业队列.然后,队列将作为批处理作业处理,并且应该能够并行处理某些作业.
我已经做了一些研究并找到了几种方法来实现它,但我并没有真正意识到它们的优点和缺点.
例如,通过多次调用脚本来执行并行处理,fsockopen如下所述:
PHP中的简单并行处理
我找到的另一种方法是使用这些curl_multi功能.
curl_multi_exec PHP文档
但我认为这两种方式会增加相当多的开销,在队列上创建批处理应该主要在后台运行吗?
我也读到了关于pcntl_fork这似乎也是一种处理问题的方法.但是如果你真的不知道自己在做什么(就像我现在这样;),那看起来就会变得非常混乱.)
我也看了一下Gearman,但在那里我还需要根据需要动态生成工作线程,而不是只运行一些,然后让gearman作业服务器将它发送给自由工作者.特别是因为线程应该在执行一个作业后干净利落地退出,不会遇到最终的内存泄漏(在该问题中代码可能不完美).
Gearman入门
所以我的问题是,你如何处理PHP中的并行处理?为什么选择你的方法,不同的方法有哪些优点/缺点?
感谢您的任何意见.
我目前正在尝试让Xdebug在我们的开发服务器上工作.作为客户端我使用netbeans和连接到目前为止工作没有问题.但是当我尝试在netbeans中设置一个断点时,它就会被忽略.
是的,我已经谷歌搜索了几个小时,并在这里找到了一些完全符合我描述的问题: SO 1 SO 2
但这似乎并没有为我解决.该Xdebug模块通过zend_extension = path/to/xdebug加载.所以在
/etc/php5/conf.d/xdebug.ini
我还查看了php5/apache和php5/cli php.ini以确保它没有加载extension = somewhere那里.我还检查了phpinfo()找到的"解析的其他.ini文件",似乎没有其他地方加载.
通过执行php -m我可以看到加载的Xdebug模块
[PHP Modules]
并在
[Zend Modules]
不确定这是否表明它仍然被加载两次或者它是否正常?如果我zend_extension=/path/to/xdebug.so从conf.d/xdebug.ini它删除它仍然不再加载.所以我真的认为它只是装在那里.
如果我设置了remote_log选项,则看到Netbeans正在尝试设置某些内容:
<- breakpoint_set -i 452 -t line -s enabled
-f file:///http:/development.xxx.de/users/itsame/index.php -n 15
-> <response xmlns="urn:debugger_protocol_v1"
xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set"
transaction_id="452" state="enabled" id="258870001">
</response>
Run Code Online (Sandbox Code Playgroud)
但它似乎没有任何效果(看起来几乎和我上面发布的其他SO问题一样.但是如果我在php代码中做了一个手动xdebug_break(),它就会正确地处理它.
PHP版本是5.2.6,Xdebug是2.1.我有什么建议可以看看下一个吗?
在做了最近几年的web开发(php/js)后,我认为现在是时候看一下不同的东西了.我认为在编程中看一下不同领域以更好地理解一些不同的方法可能总是好的,所以我现在想看看GUI开发.
作为编程语言我选择了Python,现在我慢慢得到基础知识,我也发现了这个问题:
其中已包含良好的链接和书籍提案.所以我现在主要寻找一些关于PyQt的信息:
我已经看了一些教程,但没有发现任何真正好的教程.大多数都很短,并没有真正解释任何事情.
提前感谢您的建议.
我只想调整我的代码以兼容php 5.3(6.0).所以我想用相应的preg函数替换对ereg函数的所有调用.
但后来我发现mb_ereg函数还没有被标记为已弃用.所以我只是想知道依靠它们是否可以节省吗?是否知道他们也将很快被宣布弃用,或者甚至是文档中的缺陷?
如何将ByteArrayOutputStream转换为PDF并用Java保存在硬盘中?请给出一个表面.