diff --git a/.gitignore b/.gitignore
index 511e251..726b07a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@ libbdkffi.dylib
*.swp
src/bdkpython/bdk.py
+src/bdkpython/*.so
*.whl
build/
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a263f19..a0dff5c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -20,6 +20,7 @@ The format is based on [Keep a Changelog], and this project adheres to [Semantic
- Add sqlite database support
- Fix memory database configuration enum, remove junk field
- Remove hard coded sync progress value (was always returning 21.0)
+- Fix tests and tox build workflow
## [0.0.1-0.0.5]
### Added
diff --git a/README.md b/README.md
index 96ad34b..a482f5c 100644
--- a/README.md
+++ b/README.md
@@ -34,6 +34,15 @@ python3 setup.py --verbose bdist_wheel
```
+## Run tox to build and test
+```shell
+# install dev requirements
+pip install --requirement requirements-dev.txt
+
+# build and test
+tox
+```
+
## Install locally
```shell
pip install ./dist/bdkpython--py3-none-any.whl
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..2012f16
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,7 @@
+[build-system]
+requires = ["setuptools", "wheel", "setuptools-rust"]
+
+[tool.pytest.ini_options]
+pythonpath = [
+ "."
+]
\ No newline at end of file
diff --git a/requirements-dev.txt b/requirements-dev.txt
new file mode 100644
index 0000000..b95a8a8
--- /dev/null
+++ b/requirements-dev.txt
@@ -0,0 +1,2 @@
+pytest==7.1.2
+tox==3.25.1
diff --git a/tox.ini b/tox.ini
index 95f6045..c01a149 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,10 +1,16 @@
[tox]
envlist =
+ py38
py39
+
[testenv]
-deps =
- pytest
- bdk
+usedevelop=true
+deps =
+ -rrequirements.txt
+ -rrequirements-dev.txt
commands =
+ python3 setup.py -v build
+ python3 setup.py -v install
pytest --verbose --override-ini console_output_style=count
+ python3 setup.py --verbose bdist_wheel