Testing Files Generator
简体中文

常见问题

许可证、隐私、可复现性,以及人们在把生成器放进构建流水线之前会确认的事项。如果这里没有你的问题,问题跟踪器是开放的。

这与 dd、fsutil 或 truncate 有何不同?

它们给你的是大小正确但内容空空如也的文件。用这种方式做出的名为 photo.png 的 2 MB 文件并不是 PNG,所以任何真正解析它的程序都会因为错误的原因拒绝它,而你的测试也会因为错误的原因通过。本工具生成的是大小恰好 2 MB 的真实 PNG,可以在图片查看器中打开,并附带一份说明,告诉你的系统该如何处理它。

tfg generate --format png --size 2mb --out ./fixtures

它免费吗,我能在工作中使用吗?

两者都可以。它以 GPL-3.0 发布,不收取任何费用。没有账号,没有许可证密钥,也没有付费版本。

我能在闭源产品中使用生成的文件吗?

可以。许可证涵盖的是工具的代码,而不是工具生成的内容。生成的文件、配方和清单属于输出而非衍生作品,所以你可以提交它们并随产品分发,不负任何义务。

生成的文件包含真实的个人数据吗?

不包含。里面的一切都由种子合成。不读取任何数据集,不联系任何服务,也不嵌入任何第三方内容。请把生成的电子邮件地址视为不可用,而不是未被使用,因为任何随机字符串都有可能碰巧与真实地址相同。

在另一台机器上能得到完全相同的文件吗?

能,只要配方和种子相同,就能逐字节一致。项目在每次改动时都会测试这一点,要打破它必须提升主版本号。这正是你可以提交一个小配方,而不是大型二进制 fixture 的原因。

它需要联网吗?

从不需要。没有遥测,没有更新检查,也没有云客户端,命令行二进制文件里甚至没有编译进网络栈。它可以在没有网络的机器上运行,也能在封闭的企业环境中使用。

如果我请求格式无法达到的大小会怎样?

你会收到一个错误,说明格式、可能的最小大小、该下限的原因以及应改用什么,并且不会写入任何文件。工具从不会悄悄取整。每个下限都列在格式页面上。

tfg formats png

我能生成故意损坏的文件吗?

可以。加上 --damage zero-head,文件就会以恰好所要求的大小输出,开头几个字节被零覆盖,读取器会拒绝它,清单也会说明你的系统应该拒绝它。详情见关于损坏测试文件的页面。

tfg generate --format png --size 2mb --damage zero-head --out ./out

接下来会支持哪些格式?

7z、mp3 和 mp4。目前有 26 种格式可以端到端使用。

我可以在哪些系统上运行?

命令行可在 Windows 和 Linux 上运行,支持 Intel 和 ARM,也支持 Apple 芯片的 Mac。桌面窗口提供 Windows(Intel)、Linux(Intel)和 Apple 芯片 Mac 版本。不支持 Intel Mac,也不会为其构建。

我需要安装什么吗?

不需要。下载适合你系统的压缩包,解压后运行二进制文件即可。没有安装程序,没有需要添加的运行时,也没有需要解决的依赖。如果你装有 Go,一条 go install 命令同样可用。

go install github.com/donislawdev/TestingFilesGenerator/cmd/tfg@latest

为什么在 Windows 上处理数千个文件更慢?

因为 Windows 对查看的每个路径收取更多开销,而遍历数千个文件的命令要查看数千个路径。在一台有 3000 个 1 kB 文件的机器上实测,verify 在 Windows 上约需 0.9 秒,在容器中的 Linux 上约需 0.2 秒。输出路径更短会让 Windows 的数字变小,因为文件上方的每一级文件夹都属于被查看的内容。

还在犹豫?

使用场景页面展示了它为之而生的任务,格式页面列出了每种格式及其能生成的最小文件。仓库中的 README 是完整参考。

免费开源,GPL-3.0。无需注册。Windows 和 macOS 的下载包已签名,启动时没有警告。