当前位置: 首页 > 知识库问答 >
问题:

如何使用junit和maven运行selenium测试

于嘉誉
2023-03-14

我想为詹金斯创建一个简单的硒项目。当我用Runner.java运行测试时,输出显示0种情况。当我用mvn运行我的测试时,e.g.mvn干净的验证-Dcucumber.options="--tags@烟雾"输出显示我构建成功

我所有的类都在src/test/java/package中

Runner:src/test/java/Runner/Runner。JAVA

胶水:src/test/java/胶水/登录/LoginDef.javasrc/test/java/胶水/dashboard/DashboardDef.java

cucumber的文件src/test/资源/登录/login.featuresrc/test/资源/烟/page.feature

下面是我的文件夹结构截图https://prnt.sc/nwov73

我不知道问题出在哪里;/我用谷歌之前,我问,我没有找到解决方案。。。

@RunWith(Cucumber.class)
@CucumberOptions(
        strict = true,
        features = {"src/test/resources/features"},
        plugin = {"json:build/reports/cucumberRunner.json", "html:build/reports/html", "pretty"},
        monochrome = true,
        tags = {"not @ignore", "not @wip", "@login", "@smoke"},
        glue = {"src/test/java/glue", "hooks"}
)
public class Runner {
}
    <properties>
        <io.cucumber.gherkin>5.1.0</io.cucumber.gherkin>
        <io.cucumber.common>4.3.1</io.cucumber.common>
        <selenide>5.2.3</selenide>
        <lombok>1.18.4</lombok>
        <junit>4.12</junit>
    </properties>

    <dependencies>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>gherkin</artifactId>
            <version>${io.cucumber.gherkin}</version>
        </dependency>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java8</artifactId>
            <version>${io.cucumber.common}</version>
        </dependency>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>${io.cucumber.common}</version>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>io.cucumber</groupId>-->
            <!--<artifactId>cucumber-jvm</artifactId>-->
            <!--<version>${io.cucumber.common}</version>-->
        <!--</dependency>-->

        <!-- junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit}</version>
        </dependency>

        <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok}</version>
            <scope>provided</scope>
        </dependency>

        <!-- selenide -->
        <dependency>
            <groupId>com.codeborne</groupId>
            <artifactId>selenide</artifactId>
            <version>${selenide}</version>
        <!-- <scope>test</scope>-->
     </dependency>
    </dependencies>

    <build>
        <!--<testSourceDirectory>src/test/resources/features/</testSourceDirectory>-->
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M3</version>
            </plugin>
        </plugins>
    </build>
</project>

编辑:我换跑步者。java来运行测试。JAVAMvn执行测试,但所有测试都失败。所有步骤都有“您可以使用下面的代码片段实现缺少的步骤:”/

Edit2:我从RunnerTest中的标记中删除“@”。java和当前我总是“0场景0步骤0m0.093s”

编辑3-问题已解决。我在有驱动程序配置的类的glue中没有路径。实际上,我的glue-glue={“glue”,“config/browser”}。以前我只有{“胶水”}。

共有1个答案

彭宏深
2023-03-14

请正确更新POM依赖项。gherkin、junit等是可传递的依赖项,当您添加直接依赖项时,maven将负责这些依赖项。

关键点:我们不能直接混在一起

您可能更喜欢以下正确的io设置。cucumber依赖项,并根据您的框架需要更新cucumber v。

 <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>4.2.6</version>
</dependency>

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-picocontainer</artifactId>
    <version>4.2.6</version>
</dependency>
 类似资料:
  • 我已经编写了一个JUnit测试套件,用于运行多个测试用例。 现在我想一次运行我的测试套件类(AllTest.java),以便所有测试都由一个类触发、执行和管理。我知道maven故障保护插件是可用的,但是有没有其他更简单的方法从maven调用JUnit测试套件呢? 我不想使用另一个插件。 这是我当前的maven-故障安全-插件配置:

  • 我有一个混合的Java/Scala项目,包含JUnit和ScalaTest测试。使用scalatest插件,Gradle在中运行scalatest测试,但忽略中的JUnit测试。没有插件,Gradle运行JUnit测试,但忽略Scala。我错过了什么把戏? 我的: ETA:我知道有可能对Scala测试进行注释,以迫使它们与JUnit测试运行器一起运行。我正在寻找一个一站式的解决方案,它不需要编辑每

  • 我知道JMeter是一个很好的性能工具。 不幸的是,对于性能测试,我只有:Selenium、Junit、Jenkins(或者Jenkins的其他插件,你知道吗?) 我有用Selenium编写的Junit测试。 Jenkins中的每个节点都能服务5个线程。在多台机器上并行运行测试(在Chrome中)以轻松检查每个测试是否会在相似的时间通过,这是一个好的解决方案吗? 也许你有另一种使用Selenium

  • 我正在用scala到java maven项目编写一些测试。我希望用maven插件运行这些测试,但我也希望其余的JUnit测试也能运行。问题是,根据这个指导方针,我必须禁用surefire。我有一个同时运行scalatest和junit测试的解决方案吗?

  • 问题内容: 目前,我有以下 build.gradle 文件: 这 的build.gradle 文件是我的仓库 在这里 。我所有的主文件都在 src / model /中 ,它们各自的测试在 test / model中 。 如何正确添加JUnit 4 依赖项 ,然后在 测试/模型 文件夹中运行那些测试? 问题答案: 如何正确添加junit 4依赖关系? 假设您要针对标准Maven(或等效版本)存储库