2015-10-22 3 views
0

У меня проблема с SBT (версия 0.13.9). Один из моих тестов ScalaTest не детерминирован с EOFException.Странное исключение в испытании SBT

Стек след:

Exception in thread "Thread-155" Exception in thread "Thread-159" java.io.EOFException 
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2601) 
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1319) 
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371) 
at sbt.React.react(ForkTests.scala:114) 
at sbt.ForkTests$$anonfun$mainTestTask$1$Acceptor$2$.run(ForkTests.scala:74) 
at java.lang.Thread.run(Thread.java:745) 

java.io.EOFException 
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2601) 
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1319) 
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371) 
at org.scalatest.tools.Framework$ScalaTestRunner$Skeleton$1$React.react(Framework.scala:953) 
at org.scalatest.tools.Framework$ScalaTestRunner$Skeleton$1.run(Framework.scala:942) 
at java.lang.Thread.run(Thread.java:745) 

sbt.ForkMain 59974 failed with exit code 134 

Я не вижу никаких журналов JVM или потоков отвалов.

ответ

3

SBT однопоточные или многопоточные тесты вызывают JVM, и если имя хоста не разрешено, он просто терпит неудачу с этим сообщением об ошибке. Если вы посмотрите на журналы в тестах, вы можете увидеть

неперехваченным исключение при выполнении тестов: java.net.ConnectException: Операция таймаут

Таким образом, простой способ решить эту проблему, чтобы добавить ваше имя хоста в/и т.д./хостов и отобразить его на локальный что-то вроде этого

:: 1 LOCALHOST blahblah

Это должно решить проблему.

1

Я почти наверняка связан с тем, что путь класса java является длинным, когда вы вызываете sbt.ForkMain в определенных дистрибутивах linux. Чтобы этого избежать, я добавил javaOptions in Test ++= Seq("-Xms1G","-XX:+CMSClassUnloadingEnabled","-XX:+UseConcMarkSweepGC") в файл build.sbt. Я считаю, CMSClassUnloadingEnabled, где магия происходит

+0

У меня такая же проблема, и это исправлено. Если вы в состоянии дать какие-либо разъяснения, почему именно это поможет, хотя это будет потрясающе! Я не понимаю, почему включен режим разгрузки классов. – Timmeh

+0

Извините @Timmeh Я попытался выяснить, почему именно работает, но не нашел ничего полезного. –

Смежные вопросы