gpt4 book ai didi

java - CompilationTestHelper 未找到或不鼓励访问

转载 作者:行者123 更新时间:2023-11-30 11:23:14 25 4
gpt4 key购买 nike

我想为我的编译器编写一些测试,但无法通过错误。

我正在关注 L. Bettini 的“使用 Xtext 和 Xtend 实现 DSL”(好书顺便说一句)中的示例。我已经从 https://github.com/LorenzoBettini/packtpub-xtext-book-examples 下载了“entities”DSL 的代码。 EntitiesGenerator.xtend 中的测试效果很好。

如果我使用相同的代码为默认 DSL (MyDsl) 编写测试,则会出现错误:

  • org.eclipse.xtext.xbase.compiler.CompilationTestHelper 无法解析为类型

或者,如果我将 org.eclipse.xtext.xbase.junit (2.4.1) 添加到所需插件列表中,我会得到

  • 不鼓励访问:由于所需项目 org.xtext.example.myDsl.tests 的限制,无法访问类型 CompilationTestHelper

我可以允许访问它,但无论如何都会遇到运行时错误。如果我也尝试添加 org.eclipse.xtext.xbase.lib,列表中只会出现 org.eclipse.xtext.xbase.lib.source。我不知道这有什么关系。无论如何,添加它不会改变任何东西。

我需要做什么才能让它发挥作用?

我将 Juno 与 Xtext 2.4.1.、Java 1.7 一起使用。

测试类内容:

package org.xtext.example.myDsl.tests

import com.google.inject.Inject
import org.eclipse.xtext.junit4.InjectWith
import org.eclipse.xtext.junit4.XtextRunner
import org.eclipse.xtext.xbase.compiler.CompilationTestHelper // error here
import org.xtext.example.myDsl.MyDslInjectorProvider
import org.junit.Test
import org.junit.runner.RunWith

@RunWith(typeof(XtextRunner))
@InjectWith(typeof(MyDslInjectorProvider))
class MyDslGeneratorTest {

@Inject extension CompilationTestHelper

@Test
def void testGeneratedCode() {
'''
Hello some1!
Hello some2!
'''.assertCompilesTo(
'''some content''')
}
}

提前致谢!

最佳答案

xtext 人员将可能更改的内容标记为 NOT as api。这就是您收到此警告的原因。无论如何它应该工作。 (虽然它只适用于 xbase 语言)

P.S: 你也必须添加对 jdt.core 的依赖

关于java - CompilationTestHelper 未找到或不鼓励访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21330803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com