MakeGood 和 Composer 需要一些摆弄才能让他们工作
你可能想要
- 用作曲家安装 phpunit
- 在 MakeGood 配置中添加一个文件 MakeGoodPreload.php 作为您的预加载脚本。
- 添加 phpunit.xml
最近的 PHPUnit 版本可选用 composer 完成。
首先安装作曲家:
curl -sS https://getcomposer.org/installer | php
见https://phpunit.de/manual/current/en/installation.html
然后安装phpunit
php composer.phar require "phpunit/phpunit=4.8.*"
现在从命令行测试
vendor/phpunit/phpunit/phpunit.php test/MakeGoodTest.php
使用下面的 MakeGoodTest.php 文件。结果应该是:
PHPUnit 4.8.21 by Sebastian Bergmann and contributors.
Warning: Deprecated configuration setting "strict" used
.
Time: 86 ms, Memory: 4.50Mb
OK (1 test, 5 assertions)
最近的 MakeGood 版本支持 composer 安装 phpunit 的用户。
在您的 Eclipse 项目中创建一个项目“makegood”,其中包含您的作曲家安装、test/MakeGoodTest.php、MakeGoodPreload.php 和 phpunit.xml。
右键单击项目的属性并转到“MakeGood”选项卡。在 PHPUnit 选项卡中添加 phpunit.xml 并在 General 选项卡中将 Preload Script 设置为 MakeGoodPreload.php。
现在您应该能够在编辑器中打开 MakeGoodTest.php 并右键单击以获取“Run Tests in class ...”。
运行它应该给你:
PHPUnit 4.8.21 by Sebastian Bergmann and contributors.
Warning: Deprecated configuration setting "strict" used
.
MakeGood
[x] [32mPush and pop[39m
Time: 192 ms, Memory: 8.75Mb
OK (1 test, 5 assertions)
phpunit.xml
<phpunit backupGlobals="true"
backupStaticAttributes="false"
cacheTokens="false"
colors="false"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
forceCoversAnnotation="false"
mapTestClassNameToCoveredClassName="false"
printerClass="PHPUnit_TextUI_ResultPrinter"
processIsolation="false"
stopOnError="false"
stopOnFailure="false"
stopOnIncomplete="false"
stopOnSkipped="false"
testSuiteLoaderClass="PHPUnit_Runner_StandardTestSuiteLoader"
strict="false"
verbose="false">
</phpunit>
MakeGoodPreload.php
<?php
// This is a preload script to be used with
// the Eclipse makegood continuous integration plugin
// see https://github.com/piece/makegood/releases
error_reporting(E_ALL);
$loader = require 'vendor/autoload.php';
测试/MakeGoodTest.php
<?php
class MakeGoodTest extends PHPUnit_Framework_TestCase
{
public function testPushAndPop()
{
$stack = array();
$this->assertEquals(0, count($stack));
array_push($stack, 'foo');
$this->assertEquals('foo', $stack[count($stack)-1]);
$this->assertEquals(1, count($stack));
$this->assertEquals('foo', array_pop($stack));
$this->assertEquals(0, count($stack));
}
}
?>