1.0.4 • Published 9 months ago

@qqi/dev-log v1.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

@qqi/dev-log

version issues 提交

一个用于开发的时候打印日志的工具,本质就是 console 的封装。

安装

npm install @qqi/dev-log --save

使用 Dog

创建全局的 dog (dev log 的缩写,天才第一步,起名要认真) 对象

/// 这里假设以 `a node tools` 为 `name` 的值
export const dog = new Dog({ name: 'a node tools' });

在需要打印日志的地方引入 dog 对象

import { dog } from './dog';

dog('你好'); // 该值是否打印还依赖于环境变量中有没有配置 `dev_log_dev` 的值

启用配置

# 配置 name 为 'a node tools',则使用 `a_node_tools_dev` 或 `A_NODE_TOOLS_DEV` 来启动
a_node_tools_dev=true npm run dev

使用 dev

在单元测试的时候使用 jest ,在功能测试时使用 node:testnode:assert。但是测试的时候,总是有打印的消息被 node:test 的结果覆盖。所以,写了一个简介的 dev ,用于功能测试。

类似于 node:test,使用如下:

import { dev } from '@qqi/dev-log';

const log = console.log;

dev.beforeEach(() => {
  console.log('你们执行前需要先执行我');
});

dev.afterEach(() => {
  console.log('你们执行完后会执行我');
});

// 简单使用
dev('测试 1', () => {
  log(1);
});

// 我其实就是想能够跳过测试而不是每一次 ((skip)=>{ if(skip) return; ....})(false)
dev.skip('跳过的测试', () => {
  log('我并不会被打印出来');
});

// 子测试,每一个测试是独立的,类似于 jest,单独的测试模块出现 Error 将阻止剩余逻辑执行
dev('包含子项的测试', it => {
  it.before(() => {
    console.log('我是大哥,我先执行,且仅执行一次');
  });
  it.before(() => {
    console.log('我是二哥,我执行次于大哥,且仅执行一次');
  });

  it.after(() => {
    console.log('我是小弟,你们执行完再执行我就行,仅执行一次');
  });

  it.beforeEach(() => {
    console.log('我是三哥,我执行次于二哥,每次子项执行我都执行一次');
  });

  it.beforeEach(() => {
    console.log('我是二弟,我执行早于小弟,每次子项执行我都执行一次');
  });

  it('子项 1️⃣', () => {
    log('我要出错');
    throw new Error('我粗错了');
    log('完啦,我打印不出来了');
  });

  it('子项 2️⃣', () => {
    log('没想到吧,我还活着');
  });
});

// 可以异步执行
await dev('测试异步的代码', async it => {
  it('测试异代码 2️⃣ ', async () => {
    log('异步代码 2️⃣ 外部');
    return new Promise(resolve => {
      log('异步代码 2️⃣ 内部');
      setTimeout(() => {
        log('异步代码 2️⃣');
        resolve('异步代码 2️⃣');
      }, 500);
    });
  });

  await it<string>('测试异代码 1️⃣ ', async () => {
    log('异步代码 1️⃣ 外部');
    return new Promise(resolve => {
      log('异步代码 1️⃣ 内部');
      setTimeout(() => {
        log('异步代码 1️⃣');

        resolve('异步代码 1️⃣');
      }, 1000);
    });
  });
});

在使用异步的测试时,总是期待能够使用 await ,否者可能将收到 TypeError

文档地址

参看 https://earthnut.dev/qqi_dev-log/

1.0.4

9 months ago

1.0.3

9 months ago

1.0.2

9 months ago

1.0.1

10 months ago

1.0.0

10 months ago

0.3.6-beta.0

10 months ago

0.3.5

10 months ago

0.3.4

10 months ago

0.3.3

10 months ago

0.3.2

10 months ago

0.3.1

10 months ago

0.3.0

10 months ago

0.2.0

10 months ago

0.1.0

11 months ago

0.0.1-beta.0

11 months ago

0.0.0

11 months ago