Лучшие практики для интеграционных тестов со Знатоком?

Просто используйте функция, определяемая sys.getsizeof в sys модуль.

sys.getsizeof(object[, default]):

Возврат размер объекта в байтах. Объект может быть любым типом объекта. Все встроенные объекты возвратят корректные результаты, но это не должно сохраняться для сторонних расширений, поскольку это - конкретная реализация.

default аргумент позволяет определять значение, которое будет возвращено, если тип объекта не обеспечит средства получить размер и вызовет TypeError.

getsizeof вызовы метод object’s __sizeof__ и добавляет дополнительный сборщик "мусора" наверху, если объектом управляет сборщик "мусора".

пример Использования, в python 3.0:

>>> import sys
>>> x = 2
>>> sys.getsizeof(x)
24
>>> sys.getsizeof(sys.getsizeof)
32
>>> sys.getsizeof('this')
38
>>> sys.getsizeof('this also')
48

, Если Вы находитесь в Python < 2.6 и не имеют sys.getsizeof, можно использовать этот обширный модуль вместо этого. Никогда не использовал его все же.

68
задан Rich Seller 7 August 2009 в 10:56
поделиться

2 ответа

Вот эта страница codehaus с некоторыми рекомендациями. Я счел отказоустойчивый плагин чем-то вроде взлома, и он сильно усложняет выполнение модульных тестов в Eclipse. Я делаю в общих чертах то, что вы описываете.

Определите интеграционные тесты в src / itest / java На этапе предварительного тестирования:

  • Очистить целевые / тестовые классы
  • Используйте цель add-test-source build-helper-maven-plugin , чтобы добавить наиболее подходящее исходное местоположение
  • Используйте собственный Mojo, чтобы удалить src / test / java из конфигурации, чтобы модульные тесты не компилировались снова (мне это не очень нравится, но необходимо сохранить разделение модульных и интеграционных тестов).
  • Используйте подключаемый модуль компилятора для компиляции тестов интеграции

Затем на этапе тестирования интеграции используйте модуль surefire для запуска тестов.

Наконец, привяжите любые цели по приведению в порядок на этапе тестирования после интеграции. (хотя обычно они не нужны, так как вы можете использовать test teardown (), чтобы привести в порядок).

Я еще не нашел способ объединить результаты тестов, поскольку этап отчета прошел, но я обычно рассматривают интеграционные тесты как дополнительный бонус, поэтому, если они проходят, отчет не так важен.

Обновление: я думаю, стоит отметить, что вы можете запускать Jetty из своих интеграционных тестов, а не использовать причал Цель. Это дает вам более точный контроль над тестами. Вы можете получить более подробную информацию в этом ответе и в упомянутых блогах.

21
ответ дан 24 November 2019 в 14:23
поделиться

В этом хорошем сообщении в блоге предлагается три варианта:

1) Отдельный модуль для интеграционных тестов

2) Различные исходные каталоги

3) Различные шаблоны имен файлов

Я еще не опробовал все три, поэтому не могу высказать мнение, которое мне нравится.

7
ответ дан 24 November 2019 в 14:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: