我在Windows 10 64位,JUnit 4.12,Eclipse 20190314-1200(aka 4.11.0)上使用具有DLL的Java 11,JNA。这是一个基于gradle的项目,但是我用完了标签。
其中的一部分可能并不重要,但上下文永远不会对您造成伤害,对吧?
运行任何涉及该DLL的单元测试时,该测试几乎立即无声地失败。几乎。当我尝试逐步进行时,我进入Structure.autoWrite()
(成员函数,而不是静态函数),而当我逐步进行时,便是poof。测试结束。调用堆栈看起来很像我直接调用autoWrite()
,尽管它实际上是一个native
方法调用。 Eclipse的JUnit UI继续显示该测试好像仍在运行(图标上的小蓝色三角形覆盖),但测试全部停止。 JUnit甚至没有尝试运行任何进一步的测试。
我还没有找到任何日志。标准输出只是显示我的最后一个输出(JNA用于查找DLL的路径)。我疯了。
有人知道相关的日志文件吗(不在user.name/appdata/local/temp中,我进行了彻底检查)?我可以调整一些配置以获得更多详细输出吗?在哪里可以找到JVM退出代码?有什么吗?
答案 0 :(得分:0)
有问题的DLL没有正确安装(由我安装),当我第一次调用初始化函数时,它记录了一个错误(在我的硬盘驱动器的意外角落)并称为exit()
,这很不礼貌。
您的 DLL不应结束 my 程序的进程。至少它没有导致Eclipse关闭。那样会很烦人。
那是我与全套通过单元测试之间的最后障碍。哇。
向上和向上!