【发布时间】:2018-08-13 13:25:54
【问题描述】:
我有一个使用 phpunit 进行单元测试的业务应用程序。业务应用程序的规模不断扩大,单元测试也在不断增长。当我运行 phpunit 来获取代码覆盖率报告时,内存不足。生成包含大量单元测试的代码覆盖率报告的好方法是什么?
运行下面的phpunit.xml,我在完成之前得到以下错误:
PHP Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 1068290 bytes)
我正在使用 PHP5.6 和 Jenkins 来运行这项工作。
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="./src/bootstrap/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
>
<testsuites>
<testsuite name="module1">
<directory>./tests/module1</directory>
<directory>./tests/module2</directory>
<directory>./tests/module3</directory>
<directory>./tests/module4</directory>
<directory>./tests/module5/directory>
<directory>./tests/module6</directory>
<directory>./tests/module7</directory>
<directory>./tests/module8</directory>
</testsuite>
<testsuite name="module2">
<directory>./tests/module9</directory>
<directory>./tests/module10</directory>
<directory>./tests/module11</directory>
<directory>./tests/module12</directory>
<directory>./tests/module13</directory>
<directory>./tests/module14</directory>
<directory>./tests/module15</directory>
<directory>./tests/module16</directory>
</testsuite>
</testsuites>
<filter>
<blacklist>
<directory>./src</directory>
</blacklist>
<whitelist>
<directory>./src/app/module</directory>
</whitelist>
</filter>
<logging>
<log type="coverage-html" target="build/module" title="module"
charset="UTF-8" yui="true" highlight="true"
lowUpperBound="70" highLowerBound="90"/>
<log type="junit" target="build/logs/module.xml" logIncompleteSkipped="false"/>
</logging>
</phpunit>
【问题讨论】: