Один из способов сделать это - использовать декоратор (PEP для декораторов) (первая из серии учебных статей по декораторам) . Вот пример, который делает то, что вы хотите.
from functools import wraps
from time import time
def timed(f):
@wraps(f)
def wrapper(*args, **kwds):
start = time()
result = f(*args, **kwds)
elapsed = time() - start
print "%s took %d time to finish" % (f.__name__, elapsed)
return result
return wrapper
Это пример его использования
@timed
def somefunction(countto):
for i in xrange(countto):
pass
return "Done"
Чтобы показать, как это работает, я вызвал функцию из приглашения Python:
>>> timedec.somefunction(10000000)
somefunction took 0 time to finish
'Done'
>>> timedec.somefunction(100000000)
somefunction took 2 time to finish
'Done'
>>> timedec.somefunction(1000000000)
somefunction took 22 time to finish
'Done'
Похоже, вы используете совершенно новую версию TDNet, которая должна поддерживать запуск тестов MbUnit прямо из коробки без необходимости установки. Так что это хорошо.
Попробуйте взять дистрибутив Gallio в формате ZIP и распаковать его куда-нибудь. Вам вообще не нужно переупорядочивать файлы. Просто ссылайтесь на них из своего тестового проекта на месте.
Минимальный набор файлов, который вам нужно скопировать в исходное дерево, немного сложен, потому что он зависит от функций, которые вы хотите сохранить. Как правило, безопасно удалять папки с адаптерами тестовой среды, которые вы не хотите использовать прямо сейчас (RSpec, NUnit, csUnit и т. Д.), Или для плагинов, которые абсолютно требуют установки (VisualStudio, ReSharper).
помните, что вам нужно сохранить *. файлы плагинов и ресурсы для всех плагинов, которые вы используете. Одних dll недостаточно.