在 xtext 环境中将 JUnit4 升级到 JUnit5

Upgrading JUnit4 to JUnit5 in a xtext environment

我正在处理一个使用 xtext 的复杂项目。我的工作是将测试从 JUnit4 升级到 JUnit5。问题是,对于 JUnit 测试,*.mwe2 文件生成了 2 "InjectorProvider" 类,我不知道如何将这些文件的生成升级到 JUnit5。

*.mwe2 文件当前包含在其工作流部分中 org.eclipse.xtext.generator.Generator 其中包含: fragment = junit.Junit4Fragment auto-inject {}.

Generator 已弃用,我不明白如何将完整的生成器迁移到 new/suggested XtextGenerator。同时我找不到 JUnit4 片段的替代品。

工作流程:

Workflow {
 bean = //...
 component = //...
 component = //...
 component = Generator {
    pathRtProject = runtimeProject
    pathUiProject = "${runtimeProject}.ui"
    pathTestProject = "${runtimeProject}.tests"
    projectNameRt = projectName
    projectNameUi = "${projectName}.ui"
    encoding = encoding
    language = auto-inject {        
        uri = grammarURI
    fileExtensions = fileExtensions
    fragment = //... many of these fragments
    fragment = junit.Junit4Fragment auto-inject {}
 }
}

我将不胜感激任何类型的提示或帮助,关于如何将其迁移到新的 org.eclipse.xtext.xtext.generator.XtextGenerator 或如何使 JUnit5 片段发挥作用或我必须阅读哪些主题才能完成这项工作。

如果这太含糊或证明我无能,我很抱歉,但我只是一个实习生,正在努力解决这个问题。请保持简单,我经验有限

我的项目似乎很老了,我正在跳过 xtext 的几个大版本。万一有人登陆这里,我设法通过使用新的 XtextGenerator(下面的代码)和重组项目来进一步。特别是新的生成器需要一个 .ide 包。所以我创建了一个新项目,使用向导创建了一个 JUnit 5 项目和 copied/renamed 周围所需的目录。现在我必须修复发生的错误并将我的项目重新组合在一起。这是 newGenerator 模板:

component = XtextGenerator {
    configuration = {
        project = model.project.StandardProjectConfig {

            baseName = "com.xxx.xxx.dsl.xxx"
            rootPath = ".."
            runtimeTest = {
                enabled = true
            }
            eclipsePlugin = {
                enabled = true
            }
            eclipsePluginTest = {
                enabled = false
            }
            createEclipseMetaData = true
        }
        code = {
            encoding = "UTF-8"
            lineDelimiter = "\r\n"
            fileHeader = "/*\n * generated by Xtext ${version}\n */"
        }
    }
    language = StandardLanguage {
        name = "com.xxx.xxx.xxx.xxx.xxxDSL"
        fileExtensions = "xxx"

        serializer = {
            generateStub = true
        }
        validator = {
            // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
            // Generates checks for @Deprecated grammar annotations, an IssueProvider and a corresponding PropertyPage
            generateDeprecationValidation = true
        }
        junitSupport = {
            junitVersion = "5"
        }
    }