Часті запитання
Ліцензія, приватність, відтворюваність і те, що люди перевіряють, перш ніж додавати генератор до конвеєра збірки. Якщо вашого питання тут немає, трекер задач відкритий.
Чим це відрізняється від dd, fsutil чи truncate?
Вони дають файл потрібного розміру, набитий порожнечею. Файл photo.png на 2 МБ, зроблений так, не є PNG, тому все, що справді його розбирає, відхиляє його з хибної причини, і ваш тест теж проходить із хибної причини. Цей інструмент створює справжній PNG рівно на 2 МБ, який відкривається в переглядачі зображень, і супроводжує його заявою про те, як ваша система має з ним вчинити.
tfg generate --format png --size 2mb --out ./fixtures
Це безкоштовно, і чи можна використовувати на роботі?
Так в обох випадках. Інструмент випущено під GPL-3.0, і він нічого не коштує. Немає ні облікового запису, ні ліцензійного ключа, ні платного тарифу.
Чи можна використовувати створені файли в продукті із закритим кодом?
Так. Ліцензія охоплює код інструмента, а не те, що він створює. Створені файли, рецепти й маніфести є результатом, а не похідними творами, тож їх можна комітити та постачати без жодних зобов'язань.
Чи містять створені файли справжні персональні дані?
Ні. Усе всередині синтезується з seed. Жоден набір даних не читається, до жодного сервісу не звертаються і жоден сторонній вміст не вбудовується. Вважайте створену адресу електронної пошти непридатною, а не невикористаною, бо будь-який випадковий рядок може випадково збігтися зі справжнім.
Чи отримаю я точно такі самі файли на іншій машині?
Так, байт у байт, за того самого рецепта й того самого seed. Проєкт перевіряє це при кожній зміні, а порушити це можна лише підвищенням мажорної версії. Саме тому ви можете комітити невеликий рецепт замість великих бінарних фікстур.
Чи потрібне підключення до інтернету?
Ніколи. Немає ні телеметрії, ні перевірки оновлень, ні хмарного клієнта, а в бінарний файл командного рядка взагалі не скомпільовано мережевий стек. Він працює на машині без мережі й у закритому корпоративному середовищі.
Що буде, якщо запросити розмір, якого формат не може досягти?
Ви отримаєте помилку з назвою формату, найменшим можливим розміром, причиною цього мінімуму та тим, що робити натомість, а файл записано не буде. Інструмент ніколи не округлює розмір мовчки. Кожен мінімум указано на сторінці форматів.
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, а також на Mac з Apple Silicon. Десктопне вікно постачається для Windows на Intel, Linux на Intel і Mac з Apple Silicon. Mac на Intel не підтримуються, і для них нічого не збирається.
Чи потрібно щось установлювати?
Ні. Завантажте архів для своєї системи, розпакуйте й запустіть бінарний файл. Немає інсталятора, середовища виконання, яке треба додавати, і залежностей, які треба розв'язувати. Якщо у вас є Go, підійде й одна команда go install.
go install github.com/donislawdev/TestingFilesGenerator/cmd/tfg@latest
Чому запуск на тисячах файлів у Windows повільніший?
Бо Windows бере більше за кожен шлях, який переглядає, а команда, що обходить тисячі файлів, переглядає тисячі шляхів. Виміряно на одній машині з 3000 файлів по 1 КБ: verify займає близько 0,9 секунди у Windows і близько 0,2 секунди в Linux у контейнері. Коротший шлях виводу зменшує цифру для Windows, бо кожна тека над файлами входить у те, що переглядається.
Усе ще вирішуєте?
Сторінка сценаріїв показує завдання, для яких інструмент створений, а сторінка форматів перелічує кожен формат з найменшим файлом, який він може створити. README у репозиторії - повний довідник.
Безкоштовно, відкритий код, GPL-3.0. Без реєстрації. Збірки для Windows і macOS підписані та запускаються без попереджень.