Версия 5 моего кода имеет ошибку при запуске тестов с использованием SBT:
https://www.assembla.com/code/opyate-scala-graph-fork-sbt/subversion/changesets/5
Я искал в Интернете "Класс не является доступным org.scalatest.Suite", , но получаю результаты для этого сообщения только в самом масштабном фреймворковом коде .
Пожалуйста, помогите мне выяснить, что не так, и если это проблема с зависимостью версии, проблема с совместимостью, или если тесты просто неправильно написаны.
Подробности (один пример):
Suites
@RunWith(classOf[JUnitRunner])
class TDegreeRootTest
extends Suites(
new TDegree[immutable.Graph](immutable.Graph),
new TDegree[ mutable.Graph]( mutable.Graph))
with ShouldMatchers
{
}
Тестовый класс
class TDegree[+CC[N,E[X] <: EdgeLikeIn[X]] <: Graph[N,E] with GraphLike[N,E,CC[N,E]]]
(val factory: GraphCompanion[CC])
extends Suite
with ShouldMatchers
{ ... }
Исключение
[error] Could not run test scalax.collection.TDegree:
java.lang.IllegalArgumentException:
Class is not an accessible org.scalatest.Suite:
scalax.collection.TDegree
Код ScalaTest, который выдает исключение
Следующее должно содержать true
для clazz
экземпляра моего TDegree
:
classOf[Suite].isAssignableFrom(clazz) &&
Modifier.isPublic(clazz.getModifiers) &&
!Modifier.isAbstract(clazz.getModifiers) &&
Modifier.isPublic(clazz.getConstructor(emptyClassArray: _*).getModifiers)
Требуется конструктор без аргументов, которого у меня нет.
Полагаю, теперь возникает вопрос: «Как заставить мои тестовые классы работать с ScalaTest, если у моих классов нет конструктора без аргументов?».