如何在 deno 测试中传递命令行参数?

How to pass command line arguments in deno test?

例如:

Deno.test({
  name: "Testing qr-html generation",
  fn: async () => {
    await createQRhtml();
    assertEquals(exists("out/qr.html"), true);
  }
});

createQRhtml() 函数从命令行获取参数。具体来说,第一个参数:Deno.args[0].

这里怎么指定?

您可以像这样在双破折号 (--) 后传递 CLI 参数:

deno test args.test.ts -- hello

args.test.ts:

import {assert} from 'https://deno.land/std@0.109.0/testing/asserts.ts';

function isHello (str?: unknown): boolean {
  return str === 'hello';
}

Deno.test('First CLI argument is "hello"', () => {
  const [firstArg] = Deno.args;
  assert(isHello(firstArg));
});

您可以使用以下形式了解 test 命令和 CLI 中的其他命令:

deno help COMMAND_NAME

这包含在 deno help test 的输出中:

USAGE:
    deno test [OPTIONS] [files]... [-- <SCRIPT_ARG>...]

另请参阅:https://github.com/denoland/deno/issues/8096