事情的心脏是我的IDE(的IntelliJ)内,我可以用鼠标右键点击一个个人.feature文件,并运行良好,但不读取Runner类中的任何参数。从命令行,它工作正常。 mvn clean compile test -Dcucumber.options="--tags @calculator"
运行IDE内.feature文件不能读取黄瓜亚军类
我正在使用单个框架来处理多个Web应用程序。所以每个应用程序都在一个单独的子文件夹中。
+---test
+---java
+---com
+---company
+---app
¦ +---app1
¦ ¦ +---common
¦ ¦ +---page
¦ ¦ +---step
¦ +---app2
¦ +---common
¦ +---page
¦ +---step
+---core
该框架将使用PageObject模式,使page
将包含每个页面的详细信息,common
将是在整个应用程序共同的特征,并step
是给定的,当,然后步骤。
在资源文件夹中我有一个类似的布局
+---resources
+---com
+---company
+---app
+---app1
¦ +---feature files go here
+---app2
+---feature files go here
的亚军类是主要app
文件夹。
package com.company.app;
import com.company.core.Browser;
import com.company.core._Start;
import cucumber.api.CucumberOptions;
import cucumber.api.SnippetType;
import cucumber.api.junit.Cucumber;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import java.io.File;
import java.net.InetAddress;
import java.net.UnknownHostException;
@RunWith(Cucumber.class)
@CucumberOptions(
plugin = {"pretty",
"html:target/cucumber",
"json:report/report.json",
"com.cucumber.listener.ExtentCucumberFormatter:"
},
tags = {"[email protected]"},
snippets = SnippetType.CAMELCASE
)
public class _RunnerTest extends _Start {
private static String reportFile = "report.html";
private static String configFile = "extent-config.xml";
@BeforeClass
public static void setup() {
// Stuff
}
@AfterClass
public static void teardown() {
// Stuff
}
}
因此,通过Maven命令行运行,一切都按预期工作。如果我在.feature文件(或与它的场景)的测试(S)将运行右键单击,但所以没有报告,以及@BeforeClass和@AfterClass被忽略不使用亚军类。
有什么我失踪了吗?
在我结束试了一下。遇到同样的问题。但是想知道,@ BeforeClass和'@ AfterClass'是否在runner类或stepdefination类中? 另外请注意,因为我们是直接运行特征文件,没有与亚军类没有互动,所以代码将不会执行。 –
@AshishDeshmukh,如图所示,'''@ BeforeClass'''和'''@ AfterClass'''是浇道的一部分。他们目前所包含的内容是报告电话。理想情况下,我想将浏览器启动并关闭。但是因为如果在IDE中运行跑步者没有被调用,那就没有意义了。 – MivaScott
我认为要实现你所说的(将浏览器启动并关闭),我们可以为此创建单独的功能,并使用嵌套步骤来实现使用跑步者类的相同效果。 –