成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Travis CI 持續(xù)集成服務(wù)構(gòu)建 Composer 類庫簡明教程

DoINsiSt / 2377人閱讀

摘要:創(chuàng)建帳號(hào)提供的是持續(xù)集成服務(wù),簡稱。在這里引入的原因是我們的項(xiàng)目需要使用服務(wù)進(jìn)行持續(xù)集成和測試,當(dāng)然你也可以替換成別的單元測試工具。創(chuàng)建單元測試用例是單元測試類庫家族中的一員,使用的一個(gè)主要目的是為我們的模塊創(chuàng)建單元測試用例。

本文首發(fā)于 Travis CI 持續(xù)集成服務(wù)構(gòu)建 Composer 類庫簡明教程,轉(zhuǎn)載請注明出處!

在項(xiàng)目開發(fā)過程中,編碼工作只是軟件開發(fā)整個(gè)過程中的一小部分環(huán)節(jié),更多的我們需要去構(gòu)建和測試我們的項(xiàng)目,以確保項(xiàng)目的健壯和穩(wěn)定性。

這篇文章將帶領(lǐng)大家學(xué)習(xí)如何使用 Travis CI 持續(xù)集成服務(wù)和 Composer 中國 包管理工具,來構(gòu)建一個(gè)持續(xù)集成的 PHP 類庫。

前期準(zhǔn)備

進(jìn)入正題之前,需要大家對以下幾個(gè)工具已經(jīng)有了初步的了解和使用經(jīng)驗(yàn):

Git: Git 是分布式版本控制系統(tǒng);

Composer:Composer 是 PHP 項(xiàng)目的依賴管理工具,用于管理項(xiàng)目中的 packagies 和 libraries;

GitHub:是一個(gè)用于使用 Git 版本控制系統(tǒng)項(xiàng)目的共享虛擬主機(jī)服務(wù),可以免費(fèi)托管公開的源代碼倉庫。

Packagist:主要提供 Composer 包發(fā)布和索引,默認(rèn) Composer 從 Packagist 獲取資源。

如果沒有的話,最好還是先了解一下如何使用它們,下面讓我們簡單介紹一下創(chuàng)建相關(guān)服務(wù)賬號(hào)的方法。

創(chuàng)建 Github 帳號(hào)

GitHub 是一個(gè)用于使用 Git 版本控制系統(tǒng)項(xiàng)目的共享虛擬主機(jī)服務(wù),可以免費(fèi)托管公開的源代碼倉庫。

本教程的基礎(chǔ)就是基于 Git 和 GitHub 服務(wù),所以需要我們創(chuàng)建 GitHub 帳號(hào),并且 GitHub 官方提供 Packagist、Travis CI 的鉤子服務(wù)。

當(dāng)我們將本地的項(xiàng)目推送(push)到 Github 時(shí),Packagist 和 TravisCI 服務(wù)會(huì)觸發(fā)相關(guān)的鉤子服務(wù),去獲取最新的代碼。

如果沒有賬號(hào)的話趕緊去 注冊 GitHub 帳號(hào) 吧!

創(chuàng)建 Packagist 帳號(hào)

Packagist 是 Composer 默認(rèn)的包管理服務(wù)倉庫,我們使用 Composer 安裝(install)或引入(require)一個(gè)依賴包時(shí),默認(rèn)是從這里拉取依賴包的代碼。

所以,開發(fā) Composer 類庫,需要使用我們的 Github 帳號(hào) 授權(quán) 并登錄 Packagist 網(wǎng)站。

創(chuàng)建 TravisCI 帳號(hào)

Travis CI 提供的是持續(xù)集成服務(wù)(Continuous Integration,簡稱 CI)。它綁定 Github 上面的項(xiàng)目,只要有新的代碼,就會(huì)自動(dòng)抓取,然后提供一個(gè)運(yùn)行環(huán)境,執(zhí)行測試,完成自動(dòng)化構(gòu)建,它還能將項(xiàng)目部署到我們的應(yīng)用服務(wù)器。這個(gè)教程主要講解使用這個(gè)服務(wù)的測試和自動(dòng)化構(gòu)建功能。

在開始前讓我們先完成以下準(zhǔn)備工作:

首先,訪問官方網(wǎng)站 Travis CI 使用 Github 授權(quán)登錄。

然后,當(dāng)授權(quán)登錄成功后,點(diǎn)擊右上角用戶頭像,這樣 Travis CI 會(huì)獲取到 Github 上你所有的版本庫信息。

最后,選擇你需要使用 TravisCI 服務(wù)幫你執(zhí)行測試和構(gòu)建的倉庫,點(diǎn)擊開啟按鈕。開啟成功后,任何 GitHub 提交代碼操作,都會(huì)觸發(fā) TravisCI 的鉤子服務(wù),然后執(zhí)行測試和構(gòu)建處理。

在完成以上帳號(hào)注冊流程后,我們就可以進(jìn)入到今天的正題,使用「使用 Travis CI 持續(xù)集成服務(wù)構(gòu)建 Composer 類庫」。

創(chuàng)建新的 Composer 類庫

完成帳號(hào)創(chuàng)建及授權(quán)相關(guān)準(zhǔn)備工作后,現(xiàn)在讓我們就可以開始創(chuàng)建自己的 Composer 類庫了。

在 GitHub 創(chuàng)建項(xiàng)目倉庫

第一步需要到 GitHub 網(wǎng)站點(diǎn)擊站點(diǎn)右上角加號(hào)(?)創(chuàng)建一個(gè)新的項(xiàng)目倉庫,這里我創(chuàng)建了一個(gè)名為 travis-composer-tutorial。

默認(rèn)的 GitHub 會(huì)給我們創(chuàng)建一個(gè)空的項(xiàng)目目錄,當(dāng)然如果在創(chuàng)建時(shí)你選擇了需要?jiǎng)?chuàng)建 .gitignore、 開源協(xié)議和 readme 文件時(shí),Github 還會(huì)給我們同時(shí)創(chuàng)建這些說明及配置文件。

將 GitHub 倉庫克隆到本地

緊接著,進(jìn)入到我們的本地的工作目錄下,執(zhí)行 git clone 命令將 GitHub 中的項(xiàng)目克隆到本地:

cd your_workspace_directory

git clone https://github.com/huliuqing/travis-composer-tutorial.git

請講自己的工作目錄及版本庫的 URL 地址替換掉。

初始化 Composer 項(xiàng)目

初始化的目的是為我們新建的 travis-composer-tutorial 項(xiàng)目創(chuàng)建一個(gè) composer.json 元數(shù)據(jù)文件。創(chuàng)建這個(gè) JSON 配置文件有兩種方式:

手動(dòng)創(chuàng)建這個(gè) composer.json 文件,文件格式可以參考 庫 文檔;

通過 composer init 命令行工具,采用交互式命令創(chuàng)建。

// 在 travis-composer-tutorial 項(xiàng)目根目錄執(zhí)行下面的命令

cd travis-composer-tutorial
composer init

引導(dǎo)初始化時(shí)需要我們創(chuàng)建以下幾個(gè)初始配置選項(xiàng):

Package name: 包的名稱,我的是 phpzendo/travis-composer-tutorial;

Description []: 包的描述;

Author: 包的作者;

Package Type (e.g. library, project, metapackage, composer-plugin) []: 你開發(fā)的類庫類型;

Minimum Stability: minimum-stability 字段的值;

License: 采用的 開源協(xié)議;

require: 需要依賴的其它包,必須要有一個(gè)版本約束。并且應(yīng)該遵循 foo/bar:1.0.0 這樣的格式。

下面是我初始化 Composer 項(xiàng)目的交互截圖,有一點(diǎn)需要說明由于當(dāng)時(shí)網(wǎng)絡(luò)原因并沒有在初始化時(shí)添加依賴的其它包,后續(xù)我們可以使用 composer require 引入 PHPUnit 依賴:

通過 composer require 命令引入 PHPUnit 單元測試測試工具創(chuàng)建依賴。

composer require phpunit/phpunit

在這里引入 PHPUnit 的原因是我們的項(xiàng)目需要使用 Travis CI 服務(wù)進(jìn)行持續(xù)集成和測試,當(dāng)然你也可以替換成別的單元測試工具。

到這里,基本上我們就完成了一個(gè)創(chuàng)建初始 Composer 類庫的功能。接下來,我們將進(jìn)入到項(xiàng)目的編碼階段。

創(chuàng)建源目錄

完成基本的注冊和初始化工作后,才是進(jìn)行項(xiàng)目編碼階段,在項(xiàng)目根目錄下創(chuàng)建 src 文件夾。

項(xiàng)目的所有源碼都會(huì)放置到 src 目錄下,并采用 PSR4 自動(dòng)加載規(guī)范來定義文件結(jié)構(gòu)。

PSR 標(biāo)準(zhǔn)規(guī)范
PSR 是 PHP Standard Recommendations 的簡寫,由 PHP FIG 組織制定的 PHP 規(guī)范,是 PHP 開發(fā)的實(shí)踐標(biāo)準(zhǔn)。

這里我們需要使用 PSR4 規(guī)范是最新的「自動(dòng)加載」規(guī)范,它的功能是讓 Composer 能夠正確查找并加載我們項(xiàng)目的源文件。

使用 PSR4 規(guī)范定義文件的目錄結(jié)構(gòu)遵循以下原則:

()*

更多有關(guān) PSR4 規(guī)范說明及使用可以查看 說明。

編寫模塊代碼

現(xiàn)在讓我們來編寫項(xiàng)目的首個(gè)模塊吧。

作為教程,這里我們假設(shè)需要?jiǎng)?chuàng)建一個(gè) Dumper 類用于替代 php 內(nèi)置的 var_dump 輸出功能。

src 目錄下創(chuàng)建子目錄 Dumper,同時(shí)創(chuàng)建 Dumper/Dumper.php 類文件。


 * @method mixed dump($expression, $title = null)
 * @license MIT
 */
class Dumper
{
    /**
     * 打印變量的相關(guān)信息
     *
     * @param mixed $expression
     * @param string|null $title
     * @return void
     */
    public function dump($expression, $title = null)
    {
        echo ($title ?: "調(diào)試:") . "
";
        var_dump($expression);
        echo "
"; } }
配置 Composer 自動(dòng)加載元數(shù)據(jù)

編寫完成我們的模塊后,需要將項(xiàng)目目錄配置到 composer.json 文件的 autoload 元數(shù)據(jù)中。

autoload 配置功能是定義 composer 自動(dòng)加載與項(xiàng)目模塊的映射關(guān)系,定義后 composer 才能正確查找項(xiàng)目模塊自動(dòng)引入類文件。

有關(guān) autoload 使用說明可直接查看文檔。

確認(rèn)項(xiàng)目的命名空間。

我們模塊的命名空間為 PhpZendoDumperDumper

當(dāng)前命名空間前綴為 PhpZendo 指向的是 src 目錄,意味著 composer 自動(dòng)加載會(huì)查找 src/Dumper/Dumper.php 文件并引入(require)。

將命名空間及文件引入關(guān)系添加到 autoload 配置

打開 *composer.json 文件并添加如下配置:

    "autoload": {
        "psr-4": {
            "PhpZendo": "src/"
        }
    }

更新 composer 依賴。

執(zhí)行如下命令更新自動(dòng)加載依賴關(guān)系:

composer dump-autoload
將項(xiàng)目推送到 GtiHub 并創(chuàng)建 Packagist 鉤子服務(wù)

到這里我們基本上已經(jīng)完成了開發(fā)一個(gè)簡單的 composer 類庫,現(xiàn)在我們可以將項(xiàng)目推送到 GitHub。

但是在推送之前,我們需要到 Packagist 官網(wǎng)配置 travis-composer-tutorial 項(xiàng)目的鉤子服務(wù)。

將項(xiàng)目提交到 GitHub 遠(yuǎn)程倉庫。

首先,確定是否有 .gitignore 文件,并確保 vendor 等目錄不會(huì)添加到版本控制中。

我的 .gitignore 文件實(shí)在創(chuàng)建 GitHub 時(shí)自動(dòng)創(chuàng)建的:

composer.phar
/vendor/

# Commit your application"s lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
# composer.lock

推送項(xiàng)目到 GitHub。

git add *
git commit -m "Create travis and composer tutorial."
git push origin master

進(jìn)入 Packagist 官網(wǎng),點(diǎn)擊網(wǎng)頁右上角 Submit 按鈕添加 GitHub 代碼倉庫地址。

進(jìn)入頁面后將 https://github.com/huliuqing/... 配置到 Submit package 表單,提交即可。

添加完成后我們的 GitHub 項(xiàng)目即添加到了 Packagist。

不過此時(shí),我們的項(xiàng)目推送還不會(huì)自動(dòng)在 Packagist 中完成任何代碼推送的更新操作,而需要我們手動(dòng)的去執(zhí)行 update 操作才行,原因是當(dāng)前還沒有配置 GitHub 的鉤子服務(wù)。

如何配置鉤子服務(wù),可以到 說明文檔 去深入了解一下。

小結(jié)

在這一小節(jié)我們深入了解了如何創(chuàng)建 Github 版本庫,使用 Composer 命令行工具初始化本地類庫元數(shù)據(jù)信息;并且學(xué)習(xí)了如何定義項(xiàng)目自動(dòng)加載配置和將 GitHub 版本庫關(guān)聯(lián)到 Packagist 站點(diǎn)。

下一節(jié)我們將講解本文另外一個(gè)主題,使用 Travis CI 服務(wù)構(gòu)建持續(xù)構(gòu)建和測試項(xiàng)目。

支持 Travis CI 服務(wù),創(chuàng)建可持續(xù)構(gòu)建項(xiàng)目

Travis CI 提供一個(gè)運(yùn)行環(huán)境,然后執(zhí)行測試,完成構(gòu)建,甚至還能將我們的項(xiàng)目部署到應(yīng)用服務(wù)器。

要知道我們在編寫軟件時(shí),編碼僅僅是軟件開發(fā)過程中一小部分工作內(nèi)容;一個(gè)可靠的項(xiàng)目還需要對其進(jìn)行測試,使用 Travis CI 這類持續(xù)構(gòu)建服務(wù),可以簡化測試工作并保證項(xiàng)目的質(zhì)量。

這一節(jié)將學(xué)習(xí)持續(xù)構(gòu)建相關(guān)知識(shí)。

創(chuàng)建 PHPUnit 單元測試用例

PHPUnit 是 xUnit 單元測試類庫家族中的一員,使用 PHPUnit 的一個(gè)主要目的是為我們的模塊創(chuàng)建單元測試用例。

在項(xiàng)目中,究竟何時(shí)才需要使用單元測試技術(shù)呢?

一個(gè)很簡單的判斷標(biāo)準(zhǔn)就是,當(dāng)你想在項(xiàng)目中使用類似 var_dump 函數(shù)打印輸出內(nèi)容時(shí),一個(gè)更好的方式就是將輸出替換成單元測試。

創(chuàng)建 tests 目錄

讓我們在項(xiàng)目的根目錄下創(chuàng)建 tests 文件夾,之后我們所有的測試用例都會(huì)放置到這個(gè)目錄中。

編寫 PHPUnit 測試

接下來需要編寫 PHPUnit 測試用例,如何編寫一個(gè)簡單的測試用里遵循以下規(guī)則:

針對類 Class 的測試寫在類 ClassTest中;

ClassTest(通常)繼承自 PHPUnitFrameworkTestCase;

測試都是命名為 test* 的公用方法。

更詳細(xì)內(nèi)容可以查看 PHPUnit 中文網(wǎng) 文檔說明。

所以這里我們創(chuàng)建一個(gè) DumperTest.php 單元測試用例,并將這個(gè)測試用例創(chuàng)建在 tests/unit/DumperTest.php 路徑下:


 */
class DumperTest extends TestCase
{
    /**
     * 測試 Dumper 類實(shí)例化
     *
     * @return void
     */
    public function testDumper()
    {
        $dumper = new PhpZendoDumperDumper();

        $this->assertInstanceOf(PhpZendoDumperDumper::class, $dumper);
    }
}

這個(gè)測試用例主要用于檢測是否成功創(chuàng)建 Dumper 類。

執(zhí)行單個(gè)測試用例

完成測試用例編碼工作后,我們需要驗(yàn)證測試是否通過。之前,我們的項(xiàng)目已經(jīng)引入了 phpunit 依賴,所以這里我們可以通過下面的命令去執(zhí)行測試腳本:

./vendor/bin/phpunit UnitTest ./tests/Unit/DumperTest.php

以下是執(zhí)行結(jié)果:

有關(guān) PHPUnit 命令行工具可以查看 命令行測試執(zhí)行器 相關(guān)文檔。

雖然,我們現(xiàn)在能夠成功執(zhí)行測試腳本,但是如果我們的測試用例有多個(gè)的話,這樣一個(gè)一個(gè)寫出每個(gè)測試文件似乎有點(diǎn)傻乎乎。

有沒有好的解決方案可以將所有 tests/unit 目錄下的測試文件都執(zhí)行測試呢?

接下來會(huì)交大家如何編寫 PHPUnit 測試 XML 配置文件。

編寫 PHPUnit 測試 XML 配置文件

很多時(shí)候我們的測試腳本并非只有一個(gè)測試文件,而是會(huì)有許多的測試用例,這種情況下需要使用 XML 配置文件 來幫助我們的 PHPunit 找到所有這些測試文件路徑。

下面是我編寫的 phpunit.xml 配置文件信息:


    
        
            tests/Unit
        
    

其中我們需要重點(diǎn)關(guān)注以下幾個(gè)屬性功能:

配置文件包含一個(gè) 屬性,作用是用于配置 PHPUnit 的核心功能,其中 bootstrap 屬性用于設(shè)置自動(dòng)加載文件路徑;

phpunit 包含一個(gè)或多個(gè) ,作用是用于將測試套件及測試用例組合出新的測試套件;

用于配置測試用例目錄。

隨后,我們可以通過下面的 phpunit 命令行工具從 XML 文件中讀取配置并執(zhí)行測試:

./vendor/bin/phpunit -c phpunit.xml
配置 Travis CI 服務(wù)

到這里說明我們的項(xiàng)目進(jìn)行的非常順利,接下來就是需要到 Travis CI 配置 GitHub 項(xiàng)目的鉤子服務(wù),并執(zhí)行自動(dòng)化測試。

Travis CI 官網(wǎng)開啟項(xiàng)目的鉤子服務(wù)

如果測試一切順利的話我們就可以進(jìn)行下一步,到 Travis CI 官網(wǎng)去開啟 travis-composer-tutorial (這里請開啟自己的項(xiàng)目)項(xiàng)目的鉤子服務(wù),如何開啟可以到「創(chuàng)建 TravisCI 帳號(hào)」以及查看。

配置完成后可以看到看到 Travis CI 網(wǎng)站會(huì)獲取到我們的項(xiàng)目

編寫 YAML Travis CI 測試配置

Travis 服務(wù)提供多種編程語言的自動(dòng)化測試支持,所有這里我們需要編寫 PHP 語言的測試配置。

Travis CI 配置文件使用 YAML 語言編寫,配置文件名為 .travis.yml。有關(guān)配置的具體細(xì)節(jié)可以到 Building a PHP project 去了解。

下面介紹我們的教程需要完成的一些配置信息:

language: php

php:
  - 7.1
  - 7.2

before_script:
  - composer install

script: ./vendor/bin/phpunit -c phpunit.xml

language 和 php: language 用于配置項(xiàng)目采用的編程語言; php 用于指出當(dāng)項(xiàng)目使用 PHP 開發(fā)時(shí)選擇使用的 PHP 版本,這里我們使用 7.1 和 7.2 版本;

before_script: 用于在執(zhí)行 script 腳本前,需要執(zhí)行相關(guān)操作,我們這里去執(zhí)行 composer install 操作安裝相關(guān)依賴;

script:用于配置我們需要執(zhí)行的腳本,Travis CI 默認(rèn)會(huì)使用 PHPUnit 作為單元測試工具,并運(yùn)行 ./vendor/bin/phpunit -c phpunit.xml 進(jìn)行單元測試。

在我們的配置中,可以將 script 配置簡寫成:./vendor/bin/phpunit。

提交代碼到 GitHub
git add *
git commit -m "Support travis ci and phpunit test."
git push origin master

推送到 GitHub 會(huì)觸發(fā) Travis CI 的鉤子服務(wù),并在 Travis CI 執(zhí)行自動(dòng)化測試和構(gòu)建服務(wù)。

下面是 Travis CI 自動(dòng)構(gòu)建結(jié)果:

總結(jié)

以上就是今天的主要內(nèi)容,希望對大家有所幫助。

參考資料

持續(xù)集成服務(wù) Travis CI 教程

Composer 入門

使用 GitHub、Composer、Packagist 管理公開的 PHP 包(Step By Step)

Git 教程

TravisCI 文檔

如何簡單入門使用 Travis-CI 持續(xù)集成

學(xué)習(xí)開發(fā)自己的 Composer 包,并使用 GitHub 實(shí)時(shí)更新到 Packagist

YAML 語言教程

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/28794.html

相關(guān)文章

  • 持續(xù)集成你的項(xiàng)目】為你的項(xiàng)目創(chuàng)建自動(dòng)化測試和代碼覆蓋率測試

    摘要:單元測試中,代碼覆蓋率經(jīng)常被用來衡量測試好壞的指標(biāo)。執(zhí)行的結(jié)果和導(dǎo)出的結(jié)果都可以在的下看到接下來就是把這些文件到上,就會(huì)自動(dòng)構(gòu)建,然后開始單元測試,并把測試結(jié)果中的代碼覆蓋率發(fā)送到。 本文以PHP項(xiàng)目作為例子所需要擁有(準(zhǔn)備)的: Github賬號(hào) 一個(gè)項(xiàng)目 看著篇幅挺大的,難免有什么遺漏,如果文中有錯(cuò)誤的地方,還請各位斧正!謝謝。因?yàn)楸緛砥痛螅跃蜎]配圖了,如果有很多人反...

    Jeff 評論0 收藏0
  • Travis CI 自動(dòng)化部署博客

    摘要:自動(dòng)部署到遠(yuǎn)程服務(wù)器現(xiàn)在已經(jīng)可以自動(dòng)構(gòu)建了,那么接下來的一步就是部署到遠(yuǎn)程服務(wù)器。最后,貼出我自己的,里面有關(guān)涉及個(gè)人隱私的部分我會(huì)注釋并說明請?zhí)鎿Q成自己的登錄和登錄用戶請?zhí)鎿Q成自己的服務(wù)器本文參考鏈接使用進(jìn)行持續(xù)集成自動(dòng)化部署博客 Travis CI 是在軟件開發(fā)領(lǐng)域中的一個(gè)在線的,分布式的持續(xù)集成服務(wù),用來構(gòu)建及測試在GitHub托管的代碼。 showImg(https://seg...

    voidking 評論0 收藏0
  • 寫一個(gè)“特殊”的查詢構(gòu)造器 - (八、單元測試、收尾工作)

    摘要:單元測試的好處是給開發(fā)人員的,并不是給機(jī)器的。對于查詢構(gòu)造器這個(gè)項(xiàng)目,我們可以讓其在遠(yuǎn)程運(yùn)行環(huán)境安裝相關(guān)數(shù)據(jù)庫軟件,執(zhí)行數(shù)據(jù)表建立,數(shù)據(jù)導(dǎo)入,執(zhí)行單元測試等操作。查詢構(gòu)造器的完整代碼查詢構(gòu)造器的單元測試完整代碼。 debug 模式 對查詢構(gòu)造器進(jìn)行調(diào)試并不難,從其構(gòu)造 SQL -> 數(shù)據(jù)綁定 -> SQL 執(zhí)行的過程中就能發(fā)現(xiàn),要方便調(diào)試,只要可以觀察以下信息: 構(gòu)造的 SQL 綁定...

    Steve_Wang_ 評論0 收藏0
  • fir.im weekly - 「 持續(xù)集成 」實(shí)踐教程合集

    摘要:來這里看看的工程師如何進(jìn)行持續(xù)集成與持續(xù)部署。主要介紹了豆瓣移動(dòng)持續(xù)集成和測試相關(guān)實(shí)踐,用工具化自動(dòng)化社會(huì)化測試來解決遇到的問題,將打包發(fā)布環(huán)節(jié)自動(dòng)化。這期的持續(xù)集成實(shí)踐分享就到這里。 我們常看到許多團(tuán)隊(duì)和開發(fā)者分享他們的持續(xù)集成實(shí)踐經(jīng)驗(yàn),本期 fir.im Weekly 收集了 iOS,Android,PHP ,NodeJS 等項(xiàng)目搭建持續(xù)集成的實(shí)踐,以及一些國內(nèi)外公司的內(nèi)部持續(xù)集成...

    A Loity 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<