diff --git a/README.md b/README.md
index bcd09857e6f6c320c32c56f5182de4e1469370f3..97c65156ab93c6b8480900ab9678ec9bd5fccd4b 100644
--- a/README.md
+++ b/README.md
@@ -88,6 +88,17 @@ python3
 >>> help(asic)
 ```
 
+## Running tests
+### pytest
+Run all tests against installed version off b_asic using a virtual enviroment
+In `B-ASIC`:
+```
+python3 -m venv .venv
+source .venv/bin/activate
+pip install .
+pytest
+```
+
 ## License
 B-ASIC is distributed under the MIT license.
-See the included LICENSE file for more information.
\ No newline at end of file
+See the included LICENSE file for more information.
diff --git a/setup.py b/setup.py
index 71ae4e4a222ca26c5c0e75cafe10e2012a9518d9..0b591cbb8cabf6164d19c6a714c9d2c5d08319ea 100644
--- a/setup.py
+++ b/setup.py
@@ -70,7 +70,8 @@ setuptools.setup(
     install_requires = [
         "pybind11>=2.3.0",
         "numpy",
-        "install_qt_binding"
+        "install_qt_binding",
+        "pytest==5.3.4"
     ],
     packages = ["b_asic"],
     ext_modules = [CMakeExtension("b_asic")],
diff --git a/tests/__init__.py b/tests/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/tests/test_port.py b/tests/test_port.py
new file mode 100644
index 0000000000000000000000000000000000000000..498233bb34c0273a7a6925b845d8c4cf590ad1b6
--- /dev/null
+++ b/tests/test_port.py
@@ -0,0 +1,10 @@
+from b_asic import InputPort
+import pytest
+
+@pytest.fixture
+def outp_port():
+    return InputPort(0)
+
+
+def test_port(outp_port):
+    assert outp_port.signals() == []