我有一个多模块Selenium项目正在使用Page Factory并通过调用mvn clean verify...
来运行套件测试
我创建了一个JavaFX应用程序,它可以加载所有套件并让用户选择一个测试,然后由上述命令运行。
我现在面临的问题是,为了加载所有测试类(我在模块依赖项中使用test-jar,以便app模块中的测试类可以在其他模块中看到测试) ,我需要在测试类中使用main
方法,而不是在主类中。
显然,这不起作用,因为测试类不包含在jar中。
我正在寻找一个解决方案,要么在测试类中使用main方法,要么在src / main中查看src / test。
人们给出的建议之一是为测试提供单独的模块。这不是我的选择,因为我没有权利移动测试类或更改项目结构。
这是我正在使用的插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.package.myapp.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
要加载套件,我使用ClassLoader loader = Thread.currentThread().getContextClassLoader()
从ImmutableSet<ClassPath.ClassInfo>
获得ClassPath.from(loader).getTopLevelClasses()
答案 0 :(得分:0)
这是关于解耦模块的标准问题:您有两个模块:从属模块和独立模块。您需要从Dependent中调用Independent,但不要在Dependent的编译中包含Independent。
因此,您有多种选择:
在Dependent模块中,您只需调用工厂来获取每个接口实现并使用它。