`
agileway.cn
  • 浏览: 13921 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

从PHP安装中的测试(make test)有感

阅读更多
http://www.agileway.cn/?p=30


PHP在安装过程中,"make" 后,会提示执行"make test" 。
然后是挺长一段时间,在运行PHP的测试程序,只见屏幕不断滚动。

最后,给出的是如下的测试结果报告(TEST RESULT SUMMARY) 。
引用


================
TEST RESULT SUMMARY
---------------------------------------------------------------------
Exts skipped    :   56
Exts tested     :   23
---------------------------------------------------------------------

Number of tests : 7593              5333
Tests skipped   : 2260 ( 29.8%) --------
Tests warned    :    0 (  0.0%) (  0.0%)
Tests failed    :    9 (  0.1%) (  0.2%)
Expected fail   :    5 (  0.1%) (  0.1%)
Tests passed    : 5319 ( 70.1%) ( 99.7%)
---------------------------------------------------------------------
Time taken      :  332 seconds
=====================================================================

=====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
iconv stream filter [ext/iconv/tests/iconv_stream_filter.phpt]
posix_initgroups(): Basic tests [ext/posix/tests/posix_initgroups.phpt]
Test session_decode() function : variation [ext/session/tests/session_decode_variation3.phpt]
Test session_encode() function : variation [ext/session/tests/session_encode_variation8.phpt]
Test tempnam() function: usage variations - permissions(0000 to 0777) of dir [ext/standard/tests/file/tempnam_variation4.phpt]
Test mail() function : basic functionality [ext/standard/tests/mail/mail_basic2.phpt]
Test mail() function : variation force extra parameters [ext/standard/tests/mail/mail_variation2.phpt]
Bug #35447 (xml_parse_into_struct() chokes on the UTF-8 BOM) [ext/xml/tests/bug35447.phpt]
XML Parser test: concat character data and set empty handlers [ext/xml/tests/xml011.phpt]
=====================================================================

=====================================================================
EXPECTED FAILED TEST SUMMARY
---------------------------------------------------------------------
ob_start(): Ensure unerasable buffer cannot be flushed by ob_flush(). [tests/output/ob_start_basic_unerasable_005.phpt]
SPL: ArrayObject::__construct basic usage with ArrayObject::ARRAY_AS_PROPS. [ext/spl/tests/arrayObject___construct_basic4.phpt]
SPL: ArrayObject::__construct basic usage with ArrayObject::STD_PROP_LIST|ArrayObject::ARRAY_AS_PROPS. [ext/spl/tests/arrayObject___construct_basic5.phpt]
SPL: ArrayObject::exchangeArray() basic usage with object as underlying data store. [ext/spl/tests/arrayObject_exchangeArray_basic3.phpt]
SPL: ArrayObject::setFlags basic usage with ArrayObject::ARRAY_AS_PROPS. [ext/spl/tests/arrayObject_setFlags_basic1.phpt]
=====================================================================

You may have found a problem in PHP.
We would like to send this report automatically to the
PHP QA team, to give us a better understanding of how
the test cases are doing. If you don't want to send it
immediately, you can choose "s" to save the report to
a file that you can send us later.




严谨有纪律的PHP开发社群,仅从完备的自动化测试集就可以看出来!
很多人以为测试驱动或自动化回归测试,
是因XP这些敏捷方法出现后才冒出来的,在Java社群履行贯彻较多,
其实,这些实践是被运用已久,
且为各种社群-只要他期望能够进行高效的编程和提供高质量的作品-所广为采用的。

像自动化回归测试和持续集成这样的实践,抛开操作性层面先不说,
首先是需要深刻认识这些实践带来的巨大价值,
再上一层是整个团队要深刻认识到严格遵循这些实践的原则的重要性,
谁也不能做第一个举起石头往窗户上扔的那个人,
到位的遵循这些原则,具备高度的纪律性,
至于具体碰到的实践操作方面的困难、可能暂时的不便
-其实很多是不适应,病根所在是还没有完成思维范式的转换(Paradigm Shift)-
都是可以在实践过程中通过团队的力量,不断改进。

很多时候,团队可能刚刚开始尝试,就因暂时的不适或困难,没迈开几步,就放弃了。
这实在是很可惜的事情。

如我们所观察到的,像自动化回归测试和持续集成这样的实践,
开源项目团队的使用情况普遍好于封闭的商业的开发团队。

因为很多开源项目团队从一开始,
就要求参加项目开发的成员严格遵循这样的纪律和原则。
而许多封闭的商业开发团队,包括出资方和开发者,
认为编写大量的测试"脚手架"(其实这些测试代码不是脚手架,而是代码完备的另一面)代码,
是资源和金钱的浪费,并且感到这些纪律原则束缚了自己的手脚则大有人在。


0
0
分享到:
评论
1 楼 thxg 2011-04-01  
大的项目没有完备的测试方案将会不堪设想,所以PHP的make test也并不值得这么夸奖。我从未能编译出过一个能100%通过测试的PHP,不但如此,现在还在面对Apache的Segment Fault这个头痛的问题。

Java的向上兼容是做的最好的,Java对软件工程的体现与支持也是最好的。

相关推荐

    centos7离线源码安装make

    7. **安装`make`**:最后,使用`make install`将编译好的`make`程序安装到系统路径中(可能需要管理员权限): ``` sudo make install ``` 8. **更新链接**:如果安装成功,但新的`make`没有成为默认版本,可能...

    windows 安装make (gnu make)

    在Windows操作系统上安装GNU Make是开发过程中的常见需求,尤其是对于那些经常进行C或C++编程,或是使用基于Makefile的构建系统的人来说。GNU Make是一个自动化构建工具,它能够读取名为“Makefile”的文件,根据...

    GoogleTest测试C++框架

    通过以上步骤,你已经成功配置了GoogleTest,并能在你的C++项目中编写和运行单元测试。GoogleTest提供了丰富的断言宏,如`EXPECT_*`和`ASSERT_*`,以及更高级的功能,如参数化测试、测试套件、测试 fixture 和测试...

    google test 单元测试框架

    在gtest中,测试用例由一个或多个测试点(test fixtures)组成,每个测试点可以视为一个独立的测试。 2. 断言(Assertions):gtest提供了一系列的宏,如EXPECT_EQ、ASSERT_TRUE等,用于检查代码执行的结果是否符合...

    cv_make_test.tar.gz_linux_opencv测试

    接下来,压缩包中的"cv_make_test"可能是一个包含测试代码的文件夹,这个测试例程可以帮助开发者验证OpenCV是否已成功安装,并能正常运行。这些测试通常包括: 1. 加载和显示图像:使用`imread`和`imshow`函数读取并...

    debian7.7安装make需要的依赖包

    在Linux系统中,`make`是一个非常重要...这不仅对于直接使用`make`命令安装软件,还对于从源代码编译和构建项目至关重要。在Debian 7.7这样的旧系统上,手动安装这些工具和库可以确保你能够顺利地进行开发和维护任务。

    linux离线安装gcc、make、build-essential、Realtek8125b网卡驱动

    在Linux系统中,离线安装软件包和驱动程序是一项常见的任务,特别是在没有网络连接或者网络不稳定的情况下。本教程将详细讲解如何离线安装GCC(GNU Compiler Collection)、make、build-essential套件以及Realtek ...

    傻瓜式安装make.exe

    在Linux和Unix系统中,`make` 是默认的一部分,但在Windows环境下,需要额外安装。本教程将指导你进行“傻瓜式安装” `make.exe`,让你在Windows上也能轻松使用这个强大的自动化编译工具。 首先,我们需要下载适合...

    Ubuntu18.04离线安装g++和make

    g++-9_9.4.0-1ubuntu1~18.04_amd64.deb gcc-9_9.4.0-1ubuntu1~18.04_amd64.deb make_4.1-9.1ubuntu1_amd64.deb

    liunux 下make命令的3.8.1版本

    当我们从源代码编译软件时,`make`可以帮助我们遵循特定的规则和依赖关系,有效地执行编译过程。在这个场景中,我们关注的是`make`的3.8.1版本,这是一个较旧但仍然广泛使用的版本,尤其对于某些需要特定版本编译器...

    windows下的make 3.81

    例如,通过安装特定的插件,可以在编辑器内直接运行Make命令,查看编译结果,甚至启动GDB进行调试。 总的来说,"Windows下的make 3.81"是关于在Windows环境中使用GNU Make 3.81版本进行C/C++程序的构建流程,结合...

    cmake_test cmake_test cmake_test

    在本项目"cmake_test cmake_test cmake_test"中,我们重点讨论如何利用 CMake 进行测试和配置管理。CMake 并不直接执行编译,而是生成平台特定的构建系统(如 Makefile 或 Visual Studio 工程),然后由这些工具执行...

    ns2中maodv的安装文件 测试脚本 安装教程

    以下是对MaODV在NS2中的安装、测试脚本及安装教程的详细解释。 一、MaODV协议简介 MaODV是AODV路由协议的一个增强版本,AODV是一种无连接的、基于距离矢量的路由协议,适用于无线网络环境,特别是MANETs。MaODV引入...

    googletest-release-1.5.0.tar.gz

    `googletest`是Google开发的一个开源的C++测试框架,用于编写单元测试。`googletest-release-1.5.0.tar.gz`是一个压缩包文件,它包含了`googletest`框架的1.5.0版本源代码。在本文中,我们将详细探讨`googletest`...

    c++test在linux环境的使用

    5. 安装完成后,为了方便使用C++test的命令,需要将安装路径添加到系统PATH环境变量中。例如,如果C++test安装在`/home/huangbb/Parasoft/cpptest/9.4`,则运行`export PATH=/home/huangbb/Parasoft/cpptest/9.4:$...

    CentOS LAMP环境搭建和测试php与mysql的连接

    在安装过程中,不选择Web服务器选项,因为后续我们会手动进行编译安装。CentOS LAMP系统的组件和源码包通常有固定的存放位置: 1. RPM包和源码包:`/usr/local/src` 2. 源码包编译安装后的程序:`/usr/local/XXX` 3...

    spidev-test 程序

    **标题解析:** "spidev-test 程序" 是一个专用于SPI(Serial Peripheral Interface)设备测试...通过以上内容,我们可以了解到spidev-test程序的核心功能和使用方法,以及如何在Linux环境中进行SPI设备的测试和调试。

    ubuntu PCL安装成功测试程序

    标题中的“ubuntu PCL安装成功测试程序”表明我们即将探讨的是如何在Ubuntu操作系统上安装并测试Point Cloud Library(PCL)以及与之相关的OpenCV库。PCL是一个开源的C++库,主要用于处理3D点云数据,广泛应用于...

Global site tag (gtag.js) - Google Analytics