# at-test

> 基于@Annotation的单元测试框架

Latest version **1.1.6** (published 2016-11-18) · 0 weekly downloads

## Install

```sh
npm install at-test
pnpm add at-test
yarn add at-test
bun add at-test
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.6 |
| Published | 2016-11-18 |
| First published | 2016-11-07 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | chemingjun |

## Links

- npm: https://www.npmjs.com/package/at-test
- npm.io page: https://npm.io/package/at-test

## Dependencies (2)

- [co](https://npm.io/package/co.md) 4.6.0
- [at-js](https://npm.io/package/at-js.md) >=1.2.8

## Recent versions

- 1.1.6 (latest) — 2016-11-18
- 1.1.5 — 2016-11-18
- 1.1.4 — 2016-11-17
- 1.1.3 — 2016-11-17
- 1.1.2 — 2016-11-17
- 1.1.1 — 2016-11-17
- 1.1.0 — 2016-11-16
- 1.0.9 — 2016-11-16
- 1.0.8 — 2016-11-15
- 1.0.7 — 2016-11-15
- 1.0.6 — 2016-11-11
- 1.0.5 — 2016-11-10
- 1.0.4 — 2016-11-10
- 1.0.3 — 2016-11-10
- 1.0.2 — 2016-11-10
- … 2 more at https://npm.io/package/at-test/versions

## README

#at-test(基于注释的JS单元测试框架)
>Base on [at-js](https://github.com/CheMingjun/at-js)

##使用方法
###安装
```
    npm install at-test --save-dev
```
###示例一
1. 假设您的module文件结构是这样的:
```html
-myModule
    |-node_modules
    |-test1.js
    |-main.js
    |-package.json
```
2. 文件test1.js的内容:
```js
var assert = require('assert');

'@test.step';
var t0 = function () {
    var ts = 'aaaaa';
    for (var i = 0; i < 10000; i++) {
        ts += 'aa';
    }
    return ts;
}

'@test.step';
var t1 = function () {
    var t = 900;
    t = 900/9;
    assert.equal(t,100);
}
```
3. 文件main.js的内容:
```js
require('at-test')(['./test1.js']).then(function(report){
    console.log(report);
});
```
4. 运行
```
    node main.js
```

###示例二：复杂测试
module中的test.js中，代码修改成：

```js
var assert = require('assert');
var ds = null;

'@test.start';
var start = function () {
    ds = {};
}

'@test.step(timeout=2000)';
var test0 = function* () {
    ds.test0 = 'finish';
    var rtn = yield (function(){
        return function(_next){
            setTimeout(function(){
                _next(null,3);
            },2000)
        }
    })();
    assert.equal(rtn,3);
}

'@test.step';
var test1 = function () {
    ds.test1 = 'finish';
    return ds;
}

'@test.finish';
var fh = function () {
    ds = null;
}

module.exports = {
    deleteItem:function*(_itemObj){
        yield dao.del(_itemObj);
        return {suc:true};
    }
}
/**
 * Annotation for dao
 */
'@dao'
var dao = function(){
    throw new Error('No one implement me?oh my God....');
}
```

###示例三：测试文件自动扫描
1. module文件结构如下:
```html
-myModule
    |-node_modules
    |-folder0
        |-a.test.js
    |-folder1
        |-b.test.js
    |-main.js
    |-package.json
```
> 在module的除node_modules外的任意位置，
创建任意名称后缀为.test.js的单元测试文件
2. 文件main.js的内容:
```js
require('at-test')().then(function(report){
    console.log(report);
});
```
4. 运行
```
    node main.js
```

> 欢迎提issue，或者直接联系作者即时交流(微信号:ALJZJZ)

---
_Source: https://npm.io/package/at-test · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
