SeaLant
Библиотека с инструментом для поиска утечек памяти в процессе выполнения тестов в Chrome или Node.js
Содержание
Установка
pip install sealant
Инструкция
Пример использования
Минимальный набор действий для подключения библиотеки:
from sealant import sealant
from unittest import TestCase
...
# Предназначено для использование с фреймворком UnitTests и основанных на
# нем сторонних фреймворках
class TestsCaseExample(TestCase):
...
# Перед тестом необходимо уже иметь запущенную ноду, библиотека
# подключается к ней перед запуском метода test_case
@sealant()
def test_case(self):
some_actions()
Параметры подключения к ноде
В представленном выше сценарии используются настройки подключения по умолчанию:
подключение к ноде по localhost:9222
При необходимости можно указать другие хост/порт ноды или прямую
ccылку websocket
@sealant(host='not_localhost', port='2229', ws='ws://direct_ws:9222')
def test_case(self):
actions()
Указанный ws имеет приоритет над host/port
Допустим вариант указания настроек подключения для целого класса:
@sealant(host='not_localhost', port='2229')
class TestsCaseExample(TestCase):
...
@sealant()
def test_case(self):
actions()
Можно задать настройки по умолчанию для всех использований библиотеки в config.py.
Выбор типа анализа утечки
Следующим важным этапом настройки является возможность выбора типа heapfile: heaptimeline или heapsnapshot. По умолчанию используется heaptimeline как более быстрый и показавший большую стабильность способ. Но для Node.js допустим только вариант с heapsnapshot:
@sealant(timeline=False)
def test_case(self):
actions()
Найденные утечки сравниваются с объемом, указанным в config.py (leak_size_limit). Если размер утечки больше заданного допустимого после выполнения 8 пункта, то вызывается исключение LeakError.
Сохранение отчета и артефактов теста
В config.py можно задать, сохранять ли полученные heapfiles и составлять ли отчет в случае нахождения утечки. В этом случае составленный отчет и снятые heapfiles пакуются в zip архив и помещаются в заданную в config.py папку (по умолчанию создается папка leaks в папке с тестом).
Версионирование
Мы используем SemVer для версионирования. Доступные версии указаны в тэгах этого репозитория.
Авторы
Юдахин А.Е
e-mail: aejudakhin@gmail.com
Докучаев С.В
e-mail: sv.dokuchaev@tensor.ru
Лицензия
This project is licensed under the MIT License - see the LICENSE.md file for details
test2
Metadata
Release files for sealant 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| SeaLant-1.0.2.tar.gz | 12.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| SeaLant-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.7 kB
Release files / SeaLant-1.0.2.tar.gz
| Download URL | SeaLant-1.0.2.tar.gz |
|---|---|
| Size | 12.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
baad21f554a9340561c248fd6e3db82f2500e29be4e388448dcfeaf9e58e8da4
|
|
BLAKE2b-256 checksum How to use checksums |
5ec9978e5d539f70529a985fb1bc880cbb51e4e298f276aab13cbfdb1b658d1f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0
|
Release files / SeaLant-1.0.2-py3-none-any.whl
| Download URL | SeaLant-1.0.2-py3-none-any.whl |
|---|---|
| Size | 15.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
419d13a1f8afd5c3f1dfc28a1b9791ebcc5647b0fd74ec0bd4ce8958c0442d7c
|
|
BLAKE2b-256 checksum How to use checksums |
034d01989b64df186990b8514c2f02ce4033f67eba34283723d2ae1b275d50a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0
|