Готовый перевод Bazaar is a distributed version control system / Базар - распределенная система контроля версий: doc/en/developer-guide/testing.txt
=======================
Руководство по тестированию Базара
=======================
.. содержание::
Тестирование Базара
##############
Важность тестирования
=========================
Выполнение набора тестов
======================
./bzr selftest -v blackbox
./bzr selftest -v -x blackbox
./bzr selftest --strict
./bzr selftest --list-only
./bzr selftest -- load-list my_failing_tests
./bzr selftest --starting-with bzrlib.blackbox
Написание тестов
=============
Куда поместить новый тест?
------------------------------
__ http://docs.python.org/lib/module-doctest.html
Пропуск тестов
--------------
try:
return self.branch_format.initialize(repo.bzrdir)
except errors.UninitializableFormat:
raise tests.TestSkipped('Uninitializable branch format')
Различается несколько случаев:
TestSkipped (Тест пропущен)
Пропуск теста; единственный тип, существовавший до bzr 0.18.
TestNotApplicable (Тест не применим)
Тест не применяется к тем параметрам, с которыми он был запущен. Так обычно бывает, если тест применяется ко всем реализациям интерфейса, но некоторые аспекты интерфейса не обязательны и не присутствуют в данной конкретной реализации. (Некоторые из тестов, которые должны это возвращать, в данный момент либо возвращаются без сообщения, либо вызывают TestSkipped.) Другой вариант - использовать более конкретные параметры, чтобы вообще не вызывать данный тест.
UnavailableFeature (Возможность не доступна)
Тест не может быть запущен, потому что необходимый компонент (обычно - библиотека Python) не присутствует в тестовом окружении. Обычно это может исправить тот, кто запускает тест. Нормально, если некоторые из таких ошибок возникают при тестировании конечным пользователем или в намеренно ограниченных условиях, но полноценное тестирование никогда не должно приводить к такому результату.
======================= ======= ======= ========
result strict default lax
======================= ======= ======= ========
TestSkipped pass pass pass
TestNotApplicable pass pass pass
UnavailableFeature fail pass pass
KnownFailure fail pass pass
======================= ======= ======= ========
class TestStrace(TestCaseWithTransport):
_test_needs_features = [StraceFeature]
- SymlinkFeature,
- HardlinkFeature,
- OsFifoFeature,
- UnicodeFilenameFeature,
- FTPServerFeature, and
- CaseInsensitiveFilesystemFeature.
class _SymlinkFeature(Feature):
def _probe(self):
return osutils.has_symlinks()
def feature_name(self):
return 'symlinks'
SymlinkFeature = _SymlinkFeature()
Тестирование предупреждений
----------------
Тестовые сценарии
--------------
Поддержка тестов
------------
TestCase и его наследники
~~~~~~~~~~~~~~~~~~~~~~~~~~~
За подробностями обращайтесь к документации по API.
BranchBuilder
~~~~~~~~~~~~~
builder = self.make_branch_builder('relpath')
builder.build_commit()
builder.build_commit()
builder.build_commit()
branch = builder.get_branch()
make_branch_builder - это метод класса TestCaseWithMemoryTransport
TreeBuilder
~~~~~~~~~~~
tree = self.make_branch_and_tree('path')
builder = TreeBuilder()
builder.start_tree(tree)
builder.build(['foo', "bar/", "bar/file"])
tree.commit('commit the tree')
builder.finish_tree()
.. |--| unicode:: U+2014
..
vim: ft=rst tw=74 ai
Переведено на Нотабеноиде
http://notabenoid.org/book/164/1655
Переводчики: AlexIljin, master
Настройки
Готово:
