NodeJS 节点测试运行程序和TAP协议,如何记录/打印成功测试的值、描述和结果

wb1gzix0  于 2023-02-21  发布在  Node.js
关注(0)|答案(1)|浏览(129)

Node.js测试运行程序/ TAP方案

所以我真的很喜欢Node.js使用自己的测试运行器的想法,我也喜欢它使用Tap协议的想法。我唯一的问题是,有时候在开发我的测试时(使用摩卡&/或笑话)我喜欢查看实际和预期的,即使所有测试都通过了,关于其他人的IDK,但有不止一次我得到假阳性,这让我很头疼,因为我继续我的工作,只是为了弄清楚我正在工作的系统是有缺陷的(在这一点上,我很生气删除所有的东西 * 到我的测试中的一个实际点 *),并不得不重新编写一堆代码。

“Actual”&**“Expected”**值作为一种验证测试实际上是否由于所有正确的原因而通过的方法(受我在测试中的任何给定时刻希望它们通过的参数的约束)。

让我边想边说:* “笑话和摩卡太冗长”* 另一方面,自来水协议似乎是,“不够冗长”
我希望能够控制测试成功时打印的内容。更具体地说,我希望能够打印测试的ACTUAL/EXPECTED值,即使测试成功也是如此(不是全部,只是我指定的值)...

点击协议是否定义(或允许)打印成功测试的实际/预期值?和/或是否可以使用“节点测试运行程序”API指定某些测试打印其实际/预期结果(即使测试成功)?
ddrv8njm

ddrv8njm1#

我也有类似的问题,所以TAP specification通常显示应该如何打印子测试
经过一番研究我发现了this article
现在,我在2023年2月21日检查了节点的最新lts版本(v18.14.1),并编写了虚拟测试。

import { describe, it } from 'node:test';
import * as assert from 'assert';

describe(`As a User`, () => {
  it(`should send a message to receiver`, () => {
    assert.deepEqual({ a: { b: { c: 'abc' } } }, { a: { b: { c: 'abc' } } });
  });
});

我用了ts节点来运行它

> node -v && node --require ts-node/register --test communication.test.ts

v18.14.1
TAP version 13
# Subtest: /Users/user/projects/communication.test.ts
    # Subtest: As a User
        # Subtest: should send a message to receiver
        ok 1 - should send a message to receiver
          ---
          duration_ms: 0.465333
          ...
        1..1
    ok 1 - As a User
      ---
      duration_ms: 1.365375
      ...
    1..1
ok 1 - /Users/user/projects/communication.test.ts
  ---
  duration_ms: 404.991583
  ...
1..1
# tests 1
# pass 1
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 405.751958

因此,请尝试最新的lts节点,或者如果您不关心将来,请尝试自定义测试报告器,它可以给予您更好地控制自v19.6.0以来可用的输出

相关问题