有没有办法在JUnit5中完全控制测试方法的执行(包括前/后方法),类似于JUnit4 @RunWith注释)?
我正在尝试构建一个JUnit5 Arquillian扩展,但由于Aquillian基本上需要在容器中执行每个测试,所以当从Junit5扩展中运行Arquillian时我遇到了问题.
我的代码在这里:BasicJunit5ArquillianTest.java
测试应该在一个单独的容器中运行所有方法(包括之前/之后),该容器可以是单独的JVM,远程或嵌入式服务器或任何隔离的.我的扩展从beforeEach钩子运行测试方法,使用Arquillian传输测试类并使用LauncherFactory.create()在容器中运行它,收集测试结果并将其传回.
问题是测试方法执行两次 - 通过正常的JUnit5执行和来自beforeEach钩子的我的Arquillian扩展.我想仅通过Arquillian运行测试并跳过方法的正常执行.
这在JUnit5扩展中是否可行?或者我需要创建一个自定义测试引擎,可能会扩展Jupiter测试引擎?
将 Netbeans 从 12.6 升级到 13 后,Netbeans 无法启动。当我从命令行启动它时,我收到以下消息:
java.lang.IllegalStateException: Missing hosting module org.netbeans.libs.javacimpl for fragment org.netbeans.modules.nbjavac.impl
at org.netbeans.ModuleManager.refineClassLoader(ModuleManager.java:909)
at org.netbeans.StandardModule.classLoaderUp(StandardModule.java:527)
at org.netbeans.ModuleManager.enable(ModuleManager.java:1330)
at org.netbeans.ModuleManager.enable(ModuleManager.java:1254)
at org.netbeans.core.startup.ModuleList.installNew(ModuleList.java:315)
at org.netbeans.core.startup.ModuleList.trigger(ModuleList.java:251)
at org.netbeans.core.startup.ModuleSystem.restore(ModuleSystem.java:298)
at org.netbeans.core.startup.Main.getModuleSystem(Main.java:156)
at org.netbeans.core.startup.Main.getModuleSystem(Main.java:125)
at org.netbeans.core.startup.Main.start(Main.java:282)
at org.netbeans.core.startup.TopThreadGroup.run(TopThreadGroup.java:98)
at java.base/java.lang.Thread.run(Thread.java:829)
Run Code Online (Sandbox Code Playgroud)
什么原因?我该如何修复它?
我正在按照本教程,但我有一些问题来设置jdbc连接.
在我的arquillian.xml中,我写道:
...
<container qualifier="payara-remote" default="true">
<configuration>
<property name="resourcesXml">
src/test/resources-payara-remote/glassfish-resources.xml
</property>
</configuration>
</container>
...
Run Code Online (Sandbox Code Playgroud)
当我运行我的测试时,我收到此警告:
AVVERTENZA: Configuration contain properties not supported by the backing object org.jboss.arquillian.container.glassfish.remote_3_1.GlassFishRestConfiguration
Unused property entries: {resourcesXml=
src/test/resources-payara-remote/glassfish-resources.xml
}
Supported property names: [adminHttps, remoteServerHttpPort, libraries, type, remoteServerAddress, target, remoteServerAdminPort, remoteServerAdminHttps, adminUser, authorisation, adminPort, properties, adminHost, adminPassword]
Run Code Online (Sandbox Code Playgroud)
所以我认为"resourceXml"不受支持......我如何告诉arquillian使用该文件?
而且,在该文件中我声明了一个jdbc/test.我必须在persistence.xml中编写什么才能使用该数据库连接?
先感谢您
UPDATE
我希望在"src/test/resources-payara-remote/glassfish-resources.xml"中使用我的test-db声明jdbc连接(不在远程服务器中创建jdbc连接),但我不知道如何设置arquillian以使用.xml文件中声明的jdbc连接.