Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

cf-auto

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cf-auto - npm Package Compare versions

Comparing version 2.0.0 to 2.0.1

2

package.json
{
"name": "cf-auto",
"version": "2.0.0",
"version": "2.0.1",
"description": "test runner",

@@ -5,0 +5,0 @@ "repository": {

使用
1. 安装
```
npm install -g cf-auto
yarn add cf-auto -D
```
2. 项目根目录下添加配置文件: auto-config.js
``` javascript
mocdule.exports = {
// 测试文件类型,默认为js
fileType: "ts",
2. 项目根目录下添加配置文件: auto-config.js,以下为配置示例:
```javascript
mocdule.exports = {
// 启动前要运行的任务
beforeServe:() => {},
// 测试文件类型,默认为js
fileType: "ts",
// 测试脚本所在目录

@@ -21,2 +25,4 @@ auto: "auto",

serverPort: "12345",
// 运行测试前先要抛弃的页面
prePage: "http://localhost:10003/login.html",
// 自动测试监听状态下的自动更新监听端口

@@ -35,73 +41,77 @@ liveReloadPort: "12346",

// 可选的参数,将会解开后拼接到target url之后
query_params: {}
}
query_params: {},
},
],
// 自定义替换,配置到这里的键值对,在编译测试任务时,测试脚本中的对应键的内容都会被替换为值的内容
// 自定义替换,配置到这里的键值对,在编译测试任务时,测试脚本中的对应键的内容都会被替换为值的内容
replacements: {
"import * as cf from '../app/services/debug.js';": "var cf = window.CF;"
}
}
"import * as cf from '../app/services/debug.js';": "var cf = window.CF;",
},
};
```
测试启动时将读取配置文件,对每个任务进行单独的测试,并报告测试结果。
3. 编写测试脚本
* 测试脚本使用es6模块化编写
+ src/assist下面的两本文件:test.js和tool.js将会被注入到测试网站中assist目录下,
测试脚本可以直接import这两本中export过的变量
+ 在测试项目中生成到temp目录中的结构将如下:
```
temp
| assist // 这个就是src/assist转移过去的,
| // 里面的文件将会以模块方式注入到被测试网站中
|------test.js
|------tool.js
| tasks // 这个就是auto目录中的测试脚本转移到了这里
| chai.js // 测试断言库,将会注入到被测试网站中
| index.html // 启动测试的页面,将会以iframe的方式打开每个测试任务
| index.js // 启动页面的依赖脚本
```
* 测试脚本中可以从assist/test中引入tester开始测试,引用路径关系以生成后的temp目录为准
``` javascript
import {tester, deepEqual} from '../assist/test'
// init可以配置一下这才整个测试的标题
// 多次init的话将以最后一次为准
tester.init('title')
// 链式调用开始测试
// assert是chai单元库的的assert风格断言对象
// deepEqual是自定义的一个深对比断言方法,相对于assert.deepEqual来说
// 前者会具体深入报考那一层那个属性没有断言成功,利于观察,后者则不会
.test('测试1',(assert) => {
assert.equal(1, 2, '1===2')
deepEqual({a:{a:1}}, {a:{b:1}}, assert, 'deep equal');
})
// 测试可以返回一个promise,如果返回了promise
// 则后续的测试将会等待promise被resolve之后才执行
// 这种方式在模拟人为操作的时候,
// 或者测试间状态互相依赖的场合非常有用
.test('测试2',(assert) => {
assert.equal(1, 2, '1===2')
return new Promise(resolve => {
setTimeout(resolve, 2000)
})
})
// 这个测试将等到'测试2'执行完两秒后才被执行
.test('测试3',(assert) => {
assert.equal('1', '1', '1===1')
})
// 暂时跳过的测试
.skip('测试4',(assert) => {
// 这个测试将会被跳过
})
// 将要做的测试
.todo('测试5',(assert) => {
// 这个测试也会被跳过
})
```
- 测试脚本使用 es6 模块化编写
- src/assist 下面的两本文件:test.js 和 tool.js 将会被注入到测试网站中 assist 目录下,
测试脚本可以直接 import 这两本中 export 过的变量
- 在测试项目中生成到 temp 目录中的结构将如下:
```
temp
| assist // 这个就是src/assist转移过去的,
| // 里面的文件将会以模块方式注入到被测试网站中
|------test.js
|------tool.js
| tasks // 这个就是auto目录中的测试脚本转移到了这里
| chai.js // 测试断言库,将会注入到被测试网站中
| index.html // 启动测试的页面,将会以iframe的方式打开每个测试任务
| index.js // 启动页面的依赖脚本
```
- 测试脚本中可以从 assist/test 中引入 tester 开始测试,引用路径关系以生成后的 temp 目录为准
```javascript
import { tester, deepEqual } from "../assist/test";
// init可以配置一下这才整个测试的标题
// 多次init的话将以最后一次为准
tester
.init("title")
// 链式调用开始测试
// assert是chai单元库的的assert风格断言对象
// deepEqual是自定义的一个深对比断言方法,相对于assert.deepEqual来说
// 前者会具体深入报考那一层那个属性没有断言成功,利于观察,后者则不会
.test("测试1", (assert) => {
assert.equal(1, 2, "1===2");
deepEqual({ a: { a: 1 } }, { a: { b: 1 } }, assert, "deep equal");
})
// 测试可以返回一个promise,如果返回了promise
// 则后续的测试将会等待promise被resolve之后才执行
// 这种方式在模拟人为操作的时候,
// 或者测试间状态互相依赖的场合非常有用
.test("测试2", (assert) => {
assert.equal(1, 2, "1===2");
return new Promise((resolve) => {
setTimeout(resolve, 2000);
});
})
// 这个测试将等到'测试2'执行完两秒后才被执行
.test("测试3", (assert) => {
assert.equal("1", "1", "1===1");
})
// 暂时跳过的测试
.skip("测试4", (assert) => {
// 这个测试将会被跳过
})
// 将要做的测试
.todo("测试5", (assert) => {
// 这个测试也会被跳过
});
```
4. 写好了测试脚本后,运行`cf-auto`即可开始跑起测试
+ 将通过webdriver启动chrome进行测试,当测试完毕后关闭浏览器并在控制台中会报告结果。
+ 如果加了--watch参数,则会运行完测试后浏览器不会被关闭,会一直处于等待状态,并监听
项目业务代码变化和测试脚本变化,当发生任何变化的时候将重新运行测试,浏览器测试页面中
也会显示测试结果。
+ 如果接了--display参数,则测试页面中将显示每个测试iframe中的真实运行情况
- 将通过 webdriver 启动 chrome 进行测试,当测试完毕后关闭浏览器并在控制台中会报告结果。
- 如果加了--watch 参数,则会运行完测试后浏览器不会被关闭,会一直处于等待状态,并监听
项目业务代码变化和测试脚本变化,当发生任何变化的时候将重新运行测试,浏览器测试页面中
也会显示测试结果。
- 如果接了--display 参数,则测试页面中将显示每个测试 iframe 中的真实运行情况
- 添加--filter参数,可以配置taskList中的path名称来指定只测试该path对应的测试
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc