Готовый перевод 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

Настройки

Готово:

29.13% КП = 1.0

Непереведённые фрагменты будут пропущены.