Стратегии модульного тестирования ядра и Python API Scala - PullRequest
0 голосов
/ 27 ноября 2018

Я ищу хороший подход для тестирования инструмента, который я разрабатываю.

Инструмент представляет собой искровую библиотеку, написанную на Scala, с хорошо разработанным набором модульных тестов, которые проверяют всю логику программного обеспечения.,Мы также создали Python API, используя py4j для использования этой библиотеки в Python (аналогично тому, что pySpark для spark).

Я хотел бы начать писать тестовый конвейер, но я не уверен в подходе.Стоит отметить, что до сих пор основными ошибками, которые у нас были, были

  • , публичный метод в Scala был забыт и не реализован в python
  • публичный метод в Scala был введен в заблуждение.сторона python при взаимодействии с py4j

конвейер тестирования должен сводить на нет эти и, как мы надеемся, больше ошибок.

Лично я вижу здесь два подхода

  1. копировать тесты Scala или создавать новые подобные им, где логика тестируется в его компоненте

  2. использовать какой-то механизм отражения, где в Python мы проверяем, что публичные методы определенного объекта Scalaбыли реализованы и что эти методы фактически устанавливают параметры, как и ожидалось (через установщики / получатели)

Я не смог найти какой-либо существующий подход к этому виду модульного тестирования, и я лично более убежденчто добавление усилий в 2 даст лучший результат, так как мы на самом деле тестируем функциональность программного обеспечения python.

Я хотел бы знать, что вы думаете, и если у вас есть какие-либо источники или библиотеки, чтобы проверить, чтобы настроить мой набор

...