Библиотека с инструментом для поиска утечек памяти в процессе выполнения тестов в Chrome или Node.js
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file SeaLant-1.0.2.tar.gz.
File metadata
- Download URL: SeaLant-1.0.2.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
baad21f554a9340561c248fd6e3db82f2500e29be4e388448dcfeaf9e58e8da4
|
|
| MD5 |
d46c8c8cd0f41a2e700ff539ca81dfc3
|
|
| BLAKE2b-256 |
5ec9978e5d539f70529a985fb1bc880cbb51e4e298f276aab13cbfdb1b658d1f
|
File details
Details for the file SeaLant-1.0.2-py3-none-any.whl.
File metadata
- Download URL: SeaLant-1.0.2-py3-none-any.whl
- Upload date:
- Size: 15.8 kB
- Tags: Python 3
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
419d13a1f8afd5c3f1dfc28a1b9791ebcc5647b0fd74ec0bd4ce8958c0442d7c
|
|
| MD5 |
ed209fe4a856c599615f7dcdaf91c916
|
|
| BLAKE2b-256 |
034d01989b64df186990b8514c2f02ce4033f67eba34283723d2ae1b275d50a3
|