Java 如何在headless模式下运行TestFX?

Java 如何在headless模式下运行TestFX?,java,javafx,headless,testfx,Java,Javafx,Headless,Testfx,我正在从事一个JavaFX(使用TornadoFX)项目,我想在一个无头环境(Circle CI)中测试它 我试过写的东西,但不起作用。无论我如何配置TextFX,我总是得到 Graphics Device initialization failed for : es2, sw Error initializing QuantumRenderer: no suitable pipeline found java.lang.RuntimeException: java.lang.RuntimeE

我正在从事一个JavaFX(使用TornadoFX)项目,我想在一个无头环境(Circle CI)中测试它

我试过写的东西,但不起作用。无论我如何配置TextFX,我总是得到

Graphics Device initialization failed for :  es2, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
    at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)
    at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:221)
    at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:205)
    at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:209)
    at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:675)
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:695)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
    ... 1 more
例外。如果我在我的电脑上运行测试,我可以看到JavaFX窗口弹出,机器人在屏幕上点击东西

我的测试是这样的:

class PanelTest : ApplicationTest() {

    lateinit var panel: Panel

    override fun start(stage: Stage) {
        panel = Panel("foo")
        panel.id = "some-panel"
        val scene = Scene(panel, 800.0, 600.0)
        stage.scene = scene
        stage.show()
    }

    @Test
    fun test() {
        rightClickOn("#some-panel")
    }

    companion object {

        @BeforeClass
        fun setupSpec() {
            System.setProperty("testfx.robot", "glass")
            System.setProperty("glass.platform", "Monocle")
            System.setProperty("monocle.platform", "headless")
            System.setProperty("prism.order", "sw")
            System.setProperty("prism.text", "t2k")
            System.setProperty("java.awt.headless", "true")
            registerPrimaryStage()
        }
    }
}
我还尝试从gradle设置无头模式,但也不起作用:

junitPlatformTest {
    jvmArgs "-Dheadless=true"
}
如果我将以上所有参数作为jvm参数传递,我仍然会看到JavaFX窗口弹出

如何在测试中强制使用无头模式?我试过了,也试过了,但似乎什么都不管用