部署php 持续集成,如何配置一个 Docker 化持续集成的 PHP 开发环境

如何配置一个 Docker 化持续集成的 PHP 开发环境

利用 PHPUnit 编写单元测试(本地)

使用以下命令安装 PHPUnit 4.0:

composer global require "phpunit/phpunit=~4.0"

假设我们的工程包含两个文件,一个源代码文件 Cal.php 和一个测试代码文件 CalTest.php。

// Cal.php

class Calculator{

function add($p1,$p2)

{

return $p1+$p2;

}

}

// CalTest.php

require_once("Cal.php");

class CalTest extends PHPUnit_Framework_TestCase

{

public $cal;

function setUp()

{

$this->cal = new Calculator();

}

function tearDown() {

unset($this->cal);

}

function testadd1()

{

$result = $this->cal->add(1,1);

$this->assertEquals($result,2);

}

function testadd2()

{

$result = $this->cal->add(100,-50);

$this->assertTrue($result == 50);

}

}

使用以下命令来启动测试:

phpunit CalTest

利用 DaoCloud 配置持续集成环境(云端)

当我们写完测试代码之后,我们需要一个持续集成环境来自动执行测试,报告项目的健康状况。这里我们使用 DaoCloud 云端的持续集成能力来为我们的

我们只需要在源代码的根目录放置 daocloud.yml 文件便可以接入 DaoCloud 持续集成系统,每一次源代码的变更都会触发一次 DaoCloud 持续集成。关于 daocloud.yml 的格式,请参考

以下是我们为 daocloud.yml。

// DBTest.php

require_once("DB.php");

class DBTest extends PHPUnit_Framework_TestCase

{

public $db;

function setUp()

{

$this->db = new DB();

}

function tearDown() {

unset($this->db);

}

function exist($name, $phone) {

$contacts = $this->db->all();

foreach ($contacts as $index => $contact) {

if ($contact['name'] == $name && $contact['phone'] == $phone) {

return true;

}

}

return false;

}

function total() {

return count($this->db->all());

}

function test001()

{

$this->db->add("abc", "123");

$this->assertTrue($this->exist("abc", "123"));

}

function test002()

{

$pre = $this->total();

$this->db->add("bcd", "1234");

$post = $this->total();

$this->assertTrue($post - $pre == 1);

}

}

# daocloud.yml

image: daocloud.io/ci-php:5.5

services:

- mysql

env:

- MYSQL_USERNAME = "root"

- MYSQL_PASSWORD = ""

- MYSQL_INSTANCE_NAME = "test"

install:

- docker-php-ext-install pdo_mysql

script:

- phpunit DBTest

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值