سؤال

أنا أستخدم إصدار Eclipse:3.7.2 مع Scala IDE لـ Eclipse 2.1.0.nightly-2_09-201203121521-6e8582e.إصدار جافا هو 1.6.0_31.نظام التشغيل هو أوبونتو 11.10.

لقد بحثت عن حلول لهذه المشكلة، لكني لم أجد حلاً حتى الآن.آمل ألا تكون هناك إجابة واضحة فاتني.

لدي هذا الصف (لاحظ الحزمة):

package model.x.y

import org.scalatest.FunSuite
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner

@RunWith(classOf[JUnitRunner])
class GibberishTestSuite extends FunSuite {
  test("Check Gibberish") {
    assert("blah" === "blah")
  }
}

أنا أستخدم أيضًا gradle ويبدو المسار المصدر هكذا (لاحظ أن الحزمة لا تتطابق مع التسلسل الهرمي للدليل):

.../src/test/scala/model/GibberishTest.scala

يقوم Eclipse وgradle بإنشاء ملفات فئة متطابقة:

bin/model/x/y/GibberishTestSuite.class
build/classes/test/model/x/y/GibberishTestSuite.class

يعمل هذا بشكل جيد من خلال Gradle، ولكن عندما أحاول الركض في Eclipse، أحصل عليه

Class not found model.GibberishTestSuite
java.lang.ClassNotFoundException: model.GibberishTestSuite
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)

إذا قمت بتغيير الحزمة إلى

package model

بحيث يتطابق التسلسل الهرمي للدليل واسم الحزمة, ، فأنا قادر على إجراء اختبار الوحدة في Eclipse.في Scala، من القانوني عدم تطابق بنية الحزمة وبنية الدليل.ومع ذلك، يبدو أن عدم التطابق يربك Eclipse أو البرنامج المساعد.

أفعل شيئا خاطئا؟هل أفتقد بعض الفروق الدقيقة في التكوين؟هل ميزة لغة سكالا هذه غير مدعومة في الكسوف؟هل سيتم دعمه في مرحلة ما؟

شكرًا لك.

هل كانت مفيدة؟

المحلول

هذه مشكلة Eclipse (JDT) وليست مشكلة Scala/scala-ide.

لقد تم رفع خطأ ضد Eclipse (تتطابق شجرة Package Explorer مع الحزمة المعلنة)، ولكن في الأساس، يفترض Eclipse أن التسلسل الهرمي يطابق أسماء الحزم.سيتم إصلاح هذا في نهاية المطاف في Scala-ide، ولكن يجب تغيير النموذج لإزالة الاعتماد على JDT.إذا كنت تريد إصلاح هذه المشكلة، فمن الجيد أن تضيف صوتك إلى المشكلة المذكورة أعلاه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top