Erlang Rebar 使用指南之一:入门篇

Erlang Rebar 使用指南之一:入门篇

全文目录:

https://github.com/rebar/rebar/wiki

本章原文:

https://github.com/rebar/rebar/wiki/Getting-started

Rebar 是功能丰富的 Erlang 构建工具。用于Erlang/OTP项目的编译,测试,依赖管理,打包发布等。

Rebar 是自包含的脚本,可以方便地嵌入到项目中。

1 编译 rebar

    $ git clone git://github.com/rebar/rebar.git
    $ cd rebar
    $ ./bootstrap

查看命令说明:

    $ ./rebar -c
    $ ./rebar help clean

2 入门例子

2.1 创建一个程序目录

    $ mkdir myapp
    $ cd myapp

把 “1 编译 rebar” 得到的 rebar 复制到myapp目录中

    $ cp ../rebar/rebar .

2.2 创建第一个rebar项目

    $ ./rebar create-app appid=myapp
    $ touch rebar.config

上面命令执行后,在myapp/src生成了3个文件:
  myapp.app.src - OTP应用资源
  myapp_app.erl - 一个实现 OTP application behaviour
  myapp_sup.erl - 最顶层的 OTP Supervisor behaviour

2.3 编译项目

    $ ./rebar compile

上面命令执行后,生成ebin目录,包含与src/erl文件对应的.beam文件.
  src/myapp.app.src 生成 ebin/myapp.app

清理项目

    $ ./rebar clean

2.4 测试项目

Rebar 支持 EUnit和Common Test测试框架。给项目增加 EUint 单元测试,  增加下面的代码到
  src/myapp_app.erl:

-export([start/2, stop/1]). 后面添加:

    %% eunit testing
    -ifdef(TEST).
    -include_lib("eunit/include/eunit.hrl").
    -endif.

在文件末尾添加:

    %% eunit testing
    -ifdef(TEST).

    simple_test() ->
        ok = application:start(myapp),
        ?assertNot(undefined == whereis(myapp_sup)).

    -endif.

ifdef 宏指示测试阶段代码,不会编译进产品中。
  开始编译和测试:

    $ ./rebar compile eunit

上面的命令将编译2次,一次输出到ebin/,一次输出到.eunit/:
    ==> myapp (compile)
    Compiled src/myapp_app.erl
    Compiled src/myapp_sup.erl
    ==> myapp (eunit)
    Compiled src/myapp_sup.erl
    Compiled src/myapp_app.erl
      Test passed.

=INFO REPORT==== 30-Nov-2014::03:50:01 ===
        application: myapp
        exited: killed
        type: temporary

2.5 测试代码覆盖率统计

在myapp/rebar.config中加入下面的行:

    {cover_enabled, true}.

再次运行:

    $ rebar compile eunit

生成的统计页面在:.eunit/index.html

时间: 2024-09-29 18:23:53

Erlang Rebar 使用指南之一:入门篇的相关文章

Erlang Rebar 使用指南之四:依赖管理

Erlang Rebar 使用指南之四:依赖管理 全文目录: https://github.com/rebar/rebar/wiki 本章链接: https://github.com/rebar/rebar/wiki/Dependency-management 1 rebar依赖定义 Rebar取得和构建符合OTP/Rebar规范的项目.如果项目包含子项目,Rebar会自动递归地构建它们. 项目的依赖在project_dir/rebar.config中定义,形式如下: {deps, [Depen

Erlang Rebar 使用指南之二:制作发布版本

Erlang Rebar 使用指南之二:制作发布版本 全文目录: https://github.com/rebar/rebar/wiki 本章位置: https://github.com/rebar/rebar/wiki/Release-handling 如何使用rebar打包和发布应用. 1 查看erlang版本 $ erl Erlang/OTP 17 [erts-6.2] [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:fal

Java工程师学习指南(入门篇)

Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都是站在Java后端的全局上进行思考和总结的,忽略了很多小白们的感受,而很多朋友都需要更加基础,更加详细的学习路线. 所以,今天我们重新开一个新的专题,分别按照四篇文章讲述Java的学习路线(分别是入门篇,初级篇,中级篇,高级篇),笔者也打算趁此机会,回忆一下自己的Java学习历程.今天我们要讲的是,

【OpenCV入门指南】第一篇 安装OpenCV

[OpenCV第一篇]安装OpenCV 本篇主要介绍怎样下载OpenCV安装程序,怎样在VS2008下安装配置OpenCV,文章最后还介绍了一个使用OpenCV的简单小样例. <OpenCV入门指南>系列文章地址:http://blog.csdn.net/morewindows/article/category/1291764 一.OpenCV的下载 能够到http://www.opencv.org.cn/index.php/Download,然后选一个较新版本号下载.我下的是V2.3.1版本

【OpenCV入门指南】第二篇 缩放图像

[OpenCV入门指南]第二篇 缩放图像 上一篇<[OpenCV入门指南]第一篇安装OpenCV>讲解了如何在VS2008下安装和配置OpenCV,本篇将介绍使用OpenCV来缩放图片.首先介绍几个关键函数--cvResize和cvCreateImage <OpenCV入门指南>系列文章地址:http://blog.csdn.net/morewindows/article/category/1291764 一. 主要函数介绍 1.1 cvResize 函数功能:图像大小变换 函数原

RabbitMq学习一入门篇(hello world)

简介  RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python.Ruby..NET.Java,也是众多消息队列中表现不俗的一员,作用就是提高系统的并发性,将一些不需要及时响应客户端且占用较多资源的操作,放入队列,再由另外一个线程,去异步处理这些队列,可极大的提高系统的并发能力. 安装    安装RabbitMq需要erlang,点击下载 去官网下载Rabbit安装包,点击下载 启用web管理界面,启用方式->打开CMD命令,cd到安装目录sbi

netty深入学习之中的一个: 入门篇

netty深入学习之中的一个: 入门篇 本文代码下载: http://download.csdn.net/detail/cheungmine/8497549 1)Netty是什么 Netty是Java NIO之上的网络库(API).Netty 提供异步的.事件驱动的网络应用程序框架和工具,用以高速开发高性能.高可靠性的网络服务器和客户端程序. 2)Netty的特性 统一的API.适用于不同的协议(堵塞和非堵塞).基于灵活.可扩展的事件驱动模型.高度可定制的线程模型.可靠的无连接数据Socket支

网络入门篇(一)

目标:网络入门 时间:3个月(个人建议) 掌握知识:Switch和Router的使用及控制 扩展知识:NAT.安全.无线的基本使用. 基本知识点: Switch的使用,理解Switch的工作原理,通用一个广播域,各端口皆为独立冲突域.基于广播域进行一个数据的匹配传输,匹配原则--MAC,首先确定交换机依靠自身一个MAC缓存表查询,如果没有则泛洪查询所有端口,直到响应后记录,加入MAC缓存表,后直接依靠缓存表路径距离连接.没有则丢弃,缓存表默认老化时间是300s.而独立冲突域是全双工的一个保证,依

WebDriver使用指南(完整篇)

第1章        入门 1.1   下载selenium2.0的lib包 http://code.google.com/p/selenium/downloads/list 官方UserGuide:http://seleniumhq.org/docs/ 1.2   用webdriver打开一个浏览器 我们常用的浏览器有firefox和IE两种,firefox是selenium支持得比较成熟的浏览器.但是做页面的测试,速度通常很慢,严重影响持续集成的速度,这个时候建议使用HtmlUnit,不过H