作为插件测试运行时,不同项目中重复的软件包名称会导致InvalidAccessException

布伦丹

嗨,我目前正在构建一个eclipse插件项目,我需要编写测试来测试某些软件包私有类,但是需要将测试放置在其他插件项目中,该项目在其依赖项中具有实际的应用程序插件。

为了访问包私有类,我将测试包命名为与实际包相同的名称。问题是,如果我将其作为JUnit插件测试运行,则会收到InvalidAccessException

java.lang.IllegalAccessError: tried to access class framework.resourcepack.datamodel.IResourceModel from class framework.resourcepack.datamodel.testCreateModel
at framework.resourcepack.datamodel.testCreateModel.testCreateLanguageModel(testCreateModel.java:31)
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 junit.framework.TestCase.runTest(TestCase.java:176)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
at junit.framework.TestSuite.runTest(TestSuite.java:255)
at junit.framework.TestSuite.run(TestSuite.java:250)
at ...

如果我作为标准的junit运行,则运行良好。我检查了所有依赖关系,它们很好。任何帮助将非常感激 ;)

尼克·威尔逊

解决此问题的最常见方法是将测试包设置为aFragment而不是a Plugin,并将其主机插件设置为包含要测试的类的主机插件。

这将意味着该片段使用主机插件的ClassLoader,因此应该可以访问这些类。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

作为Maven测试运行时,TestNG测试失败,但作为TestNG套件运行时,则通过

软件包的“执行测试”失败,但单独测试运行正常,并且软件包编译良好

在将应用程序作为TestNG测试运行时破坏测试用例

在 Selenium 中将类作为 TestNG 测试运行时出现 java.lang.StackOverflowError

如何通过Mocha测试运行时参数?

通过Jest获取测试运行时间

当我取消单元测试运行时,当前运行的测试是否完成?

我可以在测试运行时跳过JUnit测试吗?

使用SBT测试运行时Spark测试失败

如何在测试运行时类型检查期间模拟 Python 类?

bazel-测试运行时的可写归档路径

将Maven依赖声明为仅测试运行时

dotnet test命令显示单个测试运行时间?

测试运行时未调用C#中的nUnit SetupFixture类

从测试运行时,getResourceAsStream(“ file”)在哪里搜索?

Junit4在测试运行时引发异常

在硒测试运行时,HTTP URL重定向为HTTPS

cypress 测试运行时无法加载地图和 css 的图块

为什么我的日志记录库会导致性能测试运行更快?

需要软件包时生成运行时警告

测试运行程序无法加载测试包

Angular 2+服务测试。服务导入在ng测试运行时未定义

如何使用在测试运行时确定的类来创建特定GUI类的测试对象?

具有预期异常的测试将产生以下错误:“测试运行时,代理进程已停止。”

javax软件包在两个不同的项目中包含不同的软件包

在作为junit测试运行时,mockito测试不会出现这种方法错误,但是在运行配置中手动添加jar时,它运行良好

通过 spring boot 测试运行时,控制器中未发生 Bean 注入

将QuickTests作为LoadRunner测试运行

如何将脚本作为pytest测试运行