Мои инструменты: Python 3.5.0, flask 1.0.2, mac osx
Моя проблема: у меня есть очень простое приложение RESTful с двумя работающими конечными точками. Я написал два очень простых модульных теста с помощью unittest, и они не выполняются по причине, в которой я сейчас не уверен. Тесты завершатся успешно, если я сделаю следующее:
- Если я запускаю сервер отдельно, скажем, на http://127.0.0.1:8015/ (а не setUp() что угодно)
- И запустите тесты так, чтобы они вызывали запросы. 3а>)
- тесты проходят нормально и проходят
Тесты просто зависают, если я запускаю тесты с определением setUp(self) ниже:
Serving Flask app "testing" (lazy loading)
Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
Debug mode: off
Running on http://127.0.0.1:8015/ (Press CTRL+C to quit)
И вот соответствующий код
def setUp(self):
self.app = Flask("testing")
self.app.testing = True
self.client = self.app.test_client()
self.EmployeeId = 4
with self.app.app_context():
db_connect = create_engine('sqlite:///some.db')
self.api = Api(self.app)
self.api.add_resource(server.Car, '/car/<employee_id>') # Route_4
app.run(port=8015, debug=False)
def test_api_can_get_employee_by_id(self):
res = requests.get(url = 'http://127.0.0.1:8015/car/{}'.format(self.EmployeeId))
data = res.json()
self.assertEqual(res.status_code, 200)
self.assertIn('mazda', data["data"][0]['make_model'])
Я посмотрел в Интернете и не нашел ресурса, который действительно охватывает мой вопрос. Настройка сервера работает во время тестирования, но модульные тесты не выполняются. Как бы вы порекомендовали решить эту проблему? Я открыт для всех предложений, включая изменение подхода. Благодарю вас!