Alt-test
Материал из ALT Linux Wiki
(Различия между версиями)
(→Написание тестов: typo-) |
(→Универсальная проверка) |
||
Строка 89: | Строка 89: | ||
ok $? "<описание при неудаче>" | ok $? "<описание при неудаче>" | ||
+ | == Комментарии в выводе == | ||
+ | |||
+ | append_comment "Комментарий" | ||
+ | |||
+ | = Советы и секреты = | ||
+ | |||
+ | == Потоковая обработка == | ||
+ | |||
+ | Так как результаты тестов накапливаются в переменной {{term|$TAP}}, то при потоковой обработке избегайте использования subshell (например, в конвейерах): | ||
+ | |||
+ | '''Неправильно:''' | ||
+ | <source lang="Bash">find /usr/share/applications -name \*.desktop | while read desktop_file; do | ||
+ | test_desktop_l10n "$desktop_file" | ||
+ | done</source> | ||
+ | |||
+ | '''Правильно:''' | ||
+ | <source lang="Bash">out="$(mktemp)" | ||
+ | find /usr/share/applications -name \*.desktop > $out | ||
+ | while read -r desktop_file; do | ||
+ | test_desktop_l10n "$desktop_file" | ||
+ | done < $out | ||
+ | rm -f $out</source> | ||
[[Категория:Тестирование]] | [[Категория:Тестирование]] |
Версия 11:49, 7 ноября 2013
alt-test — инфраструктура тестирования ALT Linux на базе Tapper.
Программа распространяется под условиями лицензии GPLv3.
Использование:
alt-test [параметры] [тест1 ...]
Параметр | Описание |
---|---|
-l | Показать список доступных модулей тестирования |
-h | Справка по использованию |
-v | Показывать полный ход тестирования |
--version | Версия программы |
Тесты расположены в /usr/lib/alt-test.
Примечание:
С программой тестирования поставляются два теста: altlinux и selftest. Первый позволяет проверить, является ли текущая система дистрибутивом ALT Linux, вторая — показать заведомо непроходимые тесты
Содержание |
Пример запуска тестирования
alt-test altlinux alt-test -v selftest
Написание тестов
Файл теста имеет расширение .t и является скриптом на shell. Начинается со строки указания интерпретатора:
#!/bin/sh
Затем подключаются функции проверки:
. alt-test-functions
После этого следует одна или несколько проверок и заканчивается файл описания теста вызовом функции
test_end
Пример
#!/bin/sh . alt-test-functions test_file /etc/hosts test_exec ls test_package coreutils test_end
Проверки
Проверка | Описание |
---|---|
test_file <имя файла> [<описание при неудаче>] | проверить, существует ли файл |
test_exec <имя программы> [<описание при неудаче>] | проверить, существует ли исполняемая программа и доступна ли она для запуска |
test_package <имя пакета> [<описание при неудаче>] | проверить, установлен ли пакет в системе или существует на диске |
Переменные среды окружения
Переменная | Описание |
---|---|
TESTED_PACKAGE_SOURCE | Путь к файлу с образом ISO, где проверять наличие пакетов с версии 1.1.0 |
Полезные функции
Функция | Описание |
---|---|
get_package_version <имя пакета> | Получить версию и релиз установленного или существующего на диске пакета с версии 1.1.0 |
Универсальная проверка
<вызов программы> ok $? "<описание при неудаче>"
Комментарии в выводе
append_comment "Комментарий"
Советы и секреты
Потоковая обработка
Так как результаты тестов накапливаются в переменной $TAP, то при потоковой обработке избегайте использования subshell (например, в конвейерах):
Неправильно:
find /usr/share/applications -name \*.desktop | while read desktop_file; do test_desktop_l10n "$desktop_file" done
Правильно:
out="$(mktemp)" find /usr/share/applications -name \*.desktop > $out while read -r desktop_file; do test_desktop_l10n "$desktop_file" done < $out rm -f $out