我的工作区中有两个项目使用Eclipse Kepler
,Adapter
(包含包适配器)和TestCases
(包含包测试)我创建的包含JUnit
个测试用例的项目适用于Adapter
中的课程。我使用不同的项目,因为我被告知这样做,所以我无法将测试包移动到与被测试类相同的项目中。
这里是Config.java
结构
package adapter;
public class Config {
//...
}
这里是TestSuite.java
结构
package tests;
import adapter.Config;
@RunWith(Suite.class)
@Suite.SuiteClasses({
// class files of the test cases
})
public class TestSuite {
//...
@BeforeClass
public static void main setUp() {
//...
Config.parse();
//...
}
}
我在Adapter
构建路径中包含了TestCases'
项目,但是当我尝试运行TestSuite.java
时,它失败了,这就是故障跟踪:
java.lang.IllegalAccessError: tried to access class adapter.Config from class tests.TestSuite
at tests.TestSuite.setUp(TestSuite.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
在此之前,我遇到了无法导入adapter.config
的问题,因为Eclipse
声称它不可见。我搜索了一段时间,修复了它重新导入我TestCases
中包含的所有罐子的原因。但现在我遇到了这个问题,我似乎无法找到解决方案。
之前没有这样做,所以我认为运行时类可能与当前类不同。根本没有编译错误。我不确定我是否做得对,但我删除了所有类文件,让Eclipse
通过保存每个文件重新编译所有内容,但同样的问题仍然存在。我不知道还应该检查什么。