diff --git a/Dockerfile-Unit-Test b/Dockerfile-Unit-Test
new file mode 100644
index 0000000..6c94271
--- /dev/null
+++ b/Dockerfile-Unit-Test
@@ -0,0 +1,35 @@
+# ==================================================================================
+#       Copyright (c) 2020 China Mobile Technology (USA) Inc. Intellectual Property.
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+# ==================================================================================
+FROM python:3.8-alpine
+
+# sdl uses hiredis which needs gcc
+RUN apk update && apk add gcc musl-dev
+
+# copy rmr libraries from builder image in lieu of an Alpine package
+COPY --from=nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-alpine3-rmr:4.0.5 /usr/local/lib64/librmr* /usr/local/lib64/
+
+# Upgrade pip, install tox
+RUN pip install --upgrade pip && pip install tox
+
+# copies
+COPY setup.py tox.ini LICENSE.txt /tmp/
+COPY lp/ /tmp/lp
+COPY tests/ /tmp/tests
+RUN pip install /tmp
+
+# Run the unit tests
+WORKDIR /tmp
+RUN tox -e code,flake8
diff --git a/tests/test_lp.py b/tests/test_lp.py
new file mode 100644
index 0000000..5210a82
--- /dev/null
+++ b/tests/test_lp.py
@@ -0,0 +1,44 @@
+# ==================================================================================
+#       Copyright (c) 2020 China Mobile Technology (USA) Inc. Intellectual Property.
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+# ==================================================================================
+import json
+import time
+from contextlib import suppress
+from lp import main, sdl
+from ricxappframe.xapp_frame import Xapp
+
+mock_lp_xapp = None
+# tox.ini sets env var to this value
+config_file_path = "/tmp/config.json"
+
+def init_config_file():
+    with open(config_file_path, "w") as file:
+        file.write('{ "version_int" : 1 }')
+
+
+def write_config_file():
+    # generate an inotify/config event
+    with open(config_file_path, "w") as file:
+        file.write('{ "version_int" : 2 }')
+
+
+def test_init_xapp():
+    # establish config
+    init_config_file()
+
+    # wait a bit then update config
+    time.sleep(1)
+    write_config_file()
+
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 0000000..5aa4273
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,43 @@
+# ==================================================================================
+#       Copyright (c) 2020 China Mobile Technology (USA) Inc. Intellectual Property.
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+# ==================================================================================
+[tox]
+envlist = code,flake8
+minversion = 2.0
+
+[testenv:code]
+basepython = python3.8
+deps=
+    pytest
+    coverage
+    pytest-cov
+setenv =
+    LD_LIBRARY_PATH = /usr/local/lib/:/usr/local/lib64
+    USE_FAKE_SDL = 1
+    CONFIG_FILE = /tmp/config.json
+
+# add -s after pytest to stream the logs as they come in, rather than saving for the end
+commands =
+    pytest -v --cov lp --cov-report xml --cov-report term-missing --cov-report html 
+    coverage xml -i
+
+[testenv:flake8]
+basepython = python3.8
+skip_install = true
+deps = flake8
+commands = flake8 setup.py lp tests
+
+[flake8]
+extend-ignore = E501,E741,E731,E302,W292,W291,F841,F401,W391
