申艳超-博客

搜索引擎、分布式、高性能、NLP、ElasticSearch、Solr

0%

从Testacular到Karma的变化

2013年03月18日,Testacular正式被重命名为Karma。具体原因,讲起来缺也很滑稽。这里面不含有任何的商业成分,只是因为Testacular与Testicular很相似,因此令人感觉尴尬。仅仅此而已,谁让JsTestDriver已经被别人给拿走了。
安装:

1
npm install -g karma

什么时候使用Karma?

  • 在真实浏览器里测试。
  • 在多种浏览器里进行测试(包括桌面、移动)。
  • 在本地开发环境执行测试。
  • 想在持续集成CI内运行测试。
  • 想在每次保存代码时,自动执行测试。
  • 热衷于terminal小黑屏。
  • 不想陷入令人厌烦的测试生活。
  • 想使用Istanbul自动生成coverage报告。
  • 想在源码中使用RequireJS。

Karma不是Testing Framework

Karma自从出现,就是一直作为一个Test Runner而存在的,只是用来驱动测试的框架。不过到目前为止,它支持以下流行的测试框架。

  • Mocha

  • Jasmine

  • QUnit

Read more »

一 Jenkins插件的结构

Jenkins插件实际上是一个按照一定规则组织的jar包,其结构如下:

1
2
3
4
5
6
7
8
9
xxx.hpi
+- META-INF
| +-MANIFEST.MF
+- WEB-INF
| +- classes
| +- index.jelly
| +- XXXX.class
| +- lib
+- (static resources)

说明:

  • 1.插件的后缀为”.hpi”,文件名(xxx部分)是插件的简写名字,用来区分插件。
  • 2.如上图结构所示,它与war包类似,只是缺少web.xml。
  • 3.MANIFEST.MF包含一些入口的配置信息。其中有继承自Jenkins插件的类,用作实例化的入口。类的全名,用作我们去区分其他插件。
  • 4.WEB-INF/classes 用来包含插件需要的.class,jelly页面等内容。它们可以封装成jar包放到WEB-INF/lib下面
  • 5.WEB-INF/lib 包含插件中需要的.jar文件
  • 6.插件需要的静态文件如图片,HTML,css样式文件,JS文件等可以放到文件的根目录下面。
    Read more »

jsTestDriver

jsTestDriver是一个JavaScript单元测试工具,易于与持续构建系统相集成并能够在多个浏览器上执行运行测试,轻松实现TDD(测试驱动开发)风格的开发。当在项目中配置好js-test-driver以后,如同junit测试java文件一般,js-test-driver可以直接通过直接运行js文件,来对js文件单元测试。

jsTestDriver框架

Read more »

jasmine测试框架简介

jasmine是一种javascript测试框架,它既可以在html文件中运行,也可以和jsTestDriver整合,在jsTestDriver中运行。

jasmine的简单语法

一个基本的jasmine测试用例如下:

1
2
3
4
5
   describe("A suite", function() {
it("contains spec with an expectation", function() {
expect(true).toBe(true);
});
});

describe方法

describe方法标志着一个测试集(test suite)的开始,这个方法有两个参数,一个字符串String,一个方法function;字符串用来描述我们这个test suite,function里的东西就是测试代码,它们就是suite。

Read more »

QUnit

QUnit是一个强大的JavaScript单元测试框架,用于调试代码。该框架是由jQuery团队的成员所开发,并且是jQuery的官方测试套件。任意正规JavaScript代码QUnit都能测试。
项目官网
文件下载地址

建立测试程序

建立html测试页面,引入 qunit.jsqunit.css 这两个必需的文件。其中qunit.js是测试套件程序,qunit.css用于控制测试套件的结果显示的样式。

<!--sample.html:-->
<html>
<head>
<meta charset="utf-8">
  <title>QUnit basic example</title>
  <link rel="stylesheet" href="./resources/qunit.css">
<script type="text/javascript" src="./resources/jquery.js"></script>
</head>
<body>
  <div id="qunit"></div>
  <div id="qunit-fixture"></div>
  <script src="./resources/qunit.js"></script>
  <script>
    test( "a basic test example", function() {
      var value = "hello";
      equal( value, "hello", "We expect value to be hello" );
    });
  </script>
</body>
</html>
Read more »

Mocha

Mocha作为一种咖啡名,应该是广为人知的,中文翻译为摩卡。在这里,我们介绍的是一个JavaScript Test Framework,它用于对NodeJS、JavaScript进行单元测试。
Mocha是一个功能丰富的Javascript测试框架,能够运行在node和浏览器上,并且有丰富的报表支持。
项目主页:http://visionmedia.github.com/mocha/

安装

npm install -g mocha

一个简单的样例

$ mkdir test
$ cd ..
$ mocha test/test.js
1
2
3
4
5
6
7
8
9
var assert = require("assert")
describe('Array', function(){
describe('#indexOf()', function(){
it('should return -1 when the value is not present', function(){
assert.equal(-1, [1,2,3].indexOf(5));
assert.equal(-1, [1,2,3].indexOf(0));
})
})
})
1
2
3
4
5
$  mocha

.

✔ 1 test complete (1ms)
Read more »

Karma/Testacular是什么?

在2012年11月,Google开源了Testacular,一个基于Node.js的JavaScript测试执行过程管理工具(Test Runner)。该工具可用于测试所有主流Web浏览器,也可集成到CI(Continuous integration)工具,也可和其他代码编辑器一起使用。

Testacular可以在不同的桌面或移动设备浏览器上,或在持续集成的服务器上测试JavaScript代码。Testacular支持chrome、ChromeCanary、 Safari、Firefox、IE、Opera、PhantomJS,知道如何捕获浏览器正使用的默认路径,这些路径可能在启动器配置文件被忽视(overridden)。Testacular就是一个可以和多重测试框架协作的测试执行过程管理工具,它有针对Jasmine、Mocha和AngularJS的适配器,它也可以与JenkinsTravis整合,用于执行持续集成测试。

Read more »

书籍信息

Amazon: NodeJS开发指南

PDF: 免费下载

NodeJS简介

是NodeJS的出现,让JavaScript在服务器端得以使用,重新焕发了生机。而不仅仅像大家所认为的,只是一个客户端脚本语言。
由于JavaScript自身的脚本语言特性,造成开发混乱,难以维护。CommonJS对这个进行了规范。像NodeJS,ringojs都是对这一规范的具体实现。
CommonJS规范包括:

  • 模块(modules)
  • 包(packages)
  • 系统(system)
  • 二进制(binary)
  • 控制台(console)
  • 编码(encodings)
  • 文件系统(filesystems)
  • 套接字(sockets)
  • 单元测试(unit testing)
    Read more »

书中,完全以旅游来讲解各种测试方法,从而让晦涩的理论变得浅显易懂。
一般情况下,旅游地都会有这样一些区域:

  • 商业区: 早晚交通拥挤,上班紧张。商业区有银行、办公楼、各类商店。对软件来说,指的是“在那里完成实际业务”。
  • 历史区: 城市一般都有写历史古迹,历史事件吸引着大批的旅游者。对软件来说,就是“历史遗留代码”。
  • 旅游区: 专门针对旅游者的区域,而一般人是不会去的。这是说故宫、长城吗?软件的有些特性和功能就是专门针对新用户的,老用户则不再使用。
  • 娱乐区: 旅游者看了所有景点和名胜古迹后,通常是很累的,筋疲力尽之后难免要去一些地方娱乐娱乐的,借此来消磨时间。软件也有这样的辅助特性和功能。
  • 旅馆区: 是人总是要有个休息的地方,睡一觉。可有时候,“休息”时还是很忙的。软件尤其如此。
  • 破旧区:每个城市都有阴暗的一面,但也有很多人无限向往之,贫民窟的百万富翁之类的。这些地方尽量不去,但是这些地方也可能存在一些漏洞。
Read more »

Ubuntu软件中心以下20款软件下载次数很多并且得票很高。

1.Stellarium 开源的桌面星空软件

2.Chromium web浏览器

3.SMPlayer 播放器

4.GnuCash 资金管理软件

5.Blender 三维绘图及渲染软件

Read more »