姚学燕 發表於 2023-5-19 00:00:00

CentOS环境下安装PHPUnit的方法分析

<p>
        本文实例讲述了CentOS环境下安装PHPUnit的方法。分享给大家供大家参考,具体如下:</p>
<p>
        PHPUnit之于PHP正如JUnit之于Java,是PHP程序员用来写单元测试代码的工具。由于上级要求员工写代码时也要写单元测试代码,于是我在网上搜集相关资料,并整理了一套符合自己虚拟机环境的PHPUnit安装方法。</p>
<p>
        <span><strong>要求:</strong></span></p>
<p>
        系统:centos5.4<br>
        PHP版本:php5.3.</p>
<p>
        <span><strong>一、安装Pear</strong></span></p>
<p>
        首先要安装最新的pear。安装命令如下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_521669">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">wget http:</code><code class="bash plain">//pear</code><code class="bash plain">.php.net</code><code class="bash plain">/go-pear</code><code class="bash plain">.phar</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">/usr/local/php5</code><code class="bash plain">.3</code><code class="bash plain">/bin/php</code> <code class="bash plain">go-pear.phar</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        pear 安装成功!如果以上命令执行不成功:</p>
<p>
        1、用 find / -name php找到php可执行文件所在的位置;<br>
        2、可以试着在命令开始加上sudo,或者用su root切换到root用户。</p>
<p>
        <span><strong>二、安装phpunit</strong></span></p>
<p>
        下面用 pear 来安装phpunit。下面的安装过程可能会提示没有找到pear,那是因为pear没有加入到环境变量中。我的解决方法是:</p>
<p>
        1、用 <code>find / -name pear</code> 找到pear所在的位置</p>
<p>
        2、输入这条语句 <code>export PATH="$PATH:/usr/local/php5.3/bin/pear"</code></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_253303">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">pear channel-discover pear.phpunit.de</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">pear channel-discover components.ez.no</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">pear channel-discover pear.symfony-project.com</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain">pear upgrade-all</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain">pear </code><code class="bash functions">install</code> <code class="bash plain">phpunit</code><code class="bash plain">/PHPUnit</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        在安装的过程中可能会出现依赖包,按照提示信息进行安装。</p>
<p>
        如:<code>yum install php-dom -y</code>等</p>
<p>
        恭喜!如果一切顺利,证明你已经安装成功了PHPUnit。</p>
<p>
        <span><strong>三、使用PHPUnit</strong></span></p>
<p>
        例子:hello.php</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterphp" id="highlighter_965743">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="php plain">&lt;?php</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="php keyword">class</code> <code class="php plain">hello_test </code><code class="php keyword">extends</code> <code class="php plain">PHPUnit_Framework_TestCase</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="php plain">{</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="php plain">publicfunction test_equal()</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="php spaces">  </code><code class="php plain">{</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="php variable">$stack</code> <code class="php plain">= </code><code class="php keyword">array</code><code class="php plain">();</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="php variable">$this</code><code class="php plain">-&gt;assertEquals(0,123);  </code><code class="php comments">//判断0和123是否相等</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="php spaces">  </code><code class="php plain">}</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="php plain">}</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="php plain">?&gt;</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        phpunit hello.php 看到OK,表示成功,否则……</p>
<p>
        但是我这边报错没有找到phpunit,当发现不是路径问题时,找到如下解决方法</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_144110">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">pear update-channels</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">pear upgrade-all</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        完了之后安装:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_402681">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">pear </code><code class="bash functions">install</code> <code class="bash plain">–alldeps phpunit</code><code class="bash plain">/PHPUnit</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        结果报错了:</p>
<p>
        <span>Unknownremote channel: pear.symfony.com<br>
        phpunit/PHPUnit requires package"channel://pear.symfony.com/Yaml" (version &gt;= 2.1.0)</span></p>
<p>
        Google一下,找到一个有用的解决方案:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_703747">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">pear channel-discover pear.symfony.com</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">pear </code><code class="bash functions">install</code> <code class="bash plain">pear.symfony.com</code><code class="bash plain">/Yaml</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        然后再次执行</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_914728">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">pear </code><code class="bash functions">install</code> <code class="bash plain">–alldeps phpunit</code><code class="bash plain">/PHPUnit</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        这回成功了</p>
<p>
        <span><strong>四、总结</strong></span></p>
<p>
        在这里我与大家分享了我在自己虚拟机上安装PHPUnit时从失败到成功的过程。失败主要是因为找不到可执行文件缺,或者少某些依赖库;失败也可能是工具与系统的版本有高有低相互不兼容。</p>
<p>
        前面分享的例子中使用了断言值相等的assertEquals,当然PHPUnit中还自带了不少其它的断言方法,如assertEmpty assertTrue ……</p>
<p>
        希望本文所述对大家CentOS服务器配置有所帮助。</p>
<p>
        原文链接:https://blog.csdn.net/nuli888/article/details/51851703</p>
頁: [1]
查看完整版本: CentOS环境下安装PHPUnit的方法分析