如何使用Maven运行作为插件安装到Eclipse应用程序的JUnit5测试

首先:是的,我已经搜索并基本上尝试了可以​​在这里和其他Blogpost中找到的所有内容。 我是一名实习生,在升级所有依赖项并使其自身黯然失色之后,尝试使项目再次运行。特别是该项目已升级到64位和Junit5。因此,以前需要的常规项目结构等都可以正常工作,但是现在我必须将Junit4迁移到Junit5。

项目结构: 我有一个多程序包设置,其中包含我们的产品(一个eclipse应用程序),一个“ tests plugin”程序包,其中包含所有测试类,另外还有一个“ test.suite”程序包,其中包含一个测试套件,可以从测试套件中执行测试。以前的插件(以避免循环依赖)。测试套件软件包的pom包含所有构建逻辑,即:

  1. 安装产品
  2. 安装测试插件
  3. tycho应该触发测试。

作为视觉辅助,项目是这样的:

  • 一些产品包
  • 测试插件包(包含测试类)​​
  • 测试套件包(包含“测试套件”和带有“ tycho”的pom和安装工作流程

问题: 由于Junit5,“测试套件包”中的“测试套件类”无法执行其他程序包中的测试,因为找不到Junit TestEngine(也无法修复)。尽管可以将“测试套件类”复制到“测试插件包”中,但工作正常,并且在eclipse中作为插件测试执行时,所有测试都可以正常运行。 当使用Maven构建时,我通过命令行参数将Maven指向“测试套件”。这适用于旧版本,但是现在我尝试在“测试插件包”中使用该套件,因为该套件可以在eclipse中运行,但是显然在这种情况下无法运行测试。 没有错误,仅运行0次,跳过0次失败0个错误0个错误,构建成功。

由于正在构建/安装/等的pom位于“测试套件”软件包中,我怀疑将测试套件移至“测试插件”软件包中需要采取其他步骤。 我尝试指出从pom到新套件位置的各种路径(source / test-work.directory/testclassesdirectory ...),但没有成功。

我已经尝试了所有可以找到的代码,但是我无法让Maven执行这些测试。 最大的“成功”是这样的:https://mukis.de/pages/simple-junit-tests-with-tycho-and-surefire/ 当将其添加到我的pom时,我发现测试类的错误“重复的类” ... 只要从片段中提取的“ compiler-plugin”在我的pom内,我就可以复制它,将其删除根本不会给我任何东西。 尝试通过Maven编译器上的“ compilerarguments”禁用重复项也没有用。

我知道我的问题比较模糊,我的解释和技巧也很薄弱,但是我很感谢任何提示/讨论或如何做事的例子。 考虑到给定的项目结构,通常如何配置tycho(运行作为插件安装到我的应用程序中的集成测试)?

编辑:这是测试套件pom中的最新尝试:

<plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-surefire-plugin</artifactId>
            <version>${tycho-version}</version>
            <configuration>     
                <testClassesDirectory>../xxx.tests\src\[some dirs]\tests</testClassesDirectory>     
                <includes>
                    <include>**/*Test.xtend</include>
                </includes>        
                <failIfNoTests>false</failIfNoTests>
                <useUIHarness>true</useUIHarness>
                <useUIThread>false</useUIThread>
                <argLine>${tycho.testArgLine} ${memoryArgs}</argLine>
                <work>${test-work-directory}</work>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.19.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                    </goals>
                    <configuration>
                        <testClassesDirectory>../xxx.tests\src\[some dirs]\tests</testClassesDirectory>
                            <includes>
                                <include>**/*Test.xtend</include>
                            </includes> 
                    </configuration>
                </execution>
            </executions>
        </plugin>

我尝试不使用路径,也让它们指向已编译和未编译的目录。

最好的问候

ziruozi 回答:如何使用Maven运行作为插件安装到Eclipse应用程序的JUnit5测试

在此上我花了一个多月,而在发布后仅一天,我偶然找到了解决方案...但是我宁可不抱怨

解决方案

    来自该插件的两个文件(* plugin.java,.project)中的
  • 是一个拼写错误,编译器未找到,但只能通过手动搜索找到。它来自旧的重命名周期,但是maven或Eclipse并没有引发错误...

  • 如我所说,
  • 我们使用命令行参数将maven指向测试套件。显然,这不再是必需的。我不知道这是否是junit5的东西,但是在“ osgi”环境中的测试类(它们打包并安装为插件)在没有提供任何指向Maven的testclass链接时都可以找到。

本文链接:https://www.f2er.com/3063875.html

大家都在问