- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想知道 @BeforeMethod
对组的用法。在 http://testng.org/javadoc/org/testng/annotations/BeforeMethod.html它说:
alwaysRun: If set to true, this configuration method will be run regardless of what groups it belongs to.
所以我有以下类(class):
public class BeforeTest {
private static final Logger LOG = Logger.getLogger(BeforeTest.class);
@BeforeMethod(groups = {"g1"}, alwaysRun = false)
public void setUpG1(){
sleep();
LOG.info("BeforeMethod G1");
}
@Test(groups = {"g1"})
public void g1Test(){
sleep();
LOG.info("g1Test()");
}
@BeforeMethod(groups = {"g2"}, alwaysRun = false)
public void setUpG2(){
sleep();
LOG.info("BeforeMethod G2");
}
@Test(groups = {"g2"})
public void g2Test(){
sleep();
LOG.info("g2Test()");
}
private void sleep(){
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
哪些输出:
BeforeMethod G1
BeforeMethod G2
g1Test()
BeforeMethod G1
BeforeMethod G2
g2Test()
除了我认为 awaysRun 默认情况下为 false 的事实之外,谁能向我解释为什么在每次测试之前调用两个 before 方法,而忽略组? @Test(skipBeforeMethod = "setUpG1") 之类的东西也可以。
我正在使用 IntelliJ IDEA CE 10.5.2。我也用 gradle 1.0-milestone-3 运行它。
最佳答案
那是因为 groups
标志只表示一个方法是否属于一个组。当启用该组时,它将始终执行,即在所有测试方法之前执行,而不管测试方法属于哪个组。默认情况下,所有组都已启用。
如果您想让该方法只对某些组的测试执行,您需要指定 onlyForGroups
。
public class BeforeTest {
private static final Logger LOG = Logger.getLogger(BeforeTest.class);
@BeforeMethod(onlyForGroups = { "g1" })
public void setUpG1() {
sleep();
LOG.info("BeforeMethod G1");
}
@Test(groups = { "g1" })
public void g1Test() {
sleep();
LOG.info("g1Test()");
}
@BeforeMethod(onlyForGroups = { "g2" }, alwaysRun = false)
public void setUpG2() {
sleep();
LOG.info("BeforeMethod G2");
}
@Test(groups = { "g2" })
public void g2Test() {
sleep();
LOG.info("g2Test()");
}
private void sleep() {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
输出是
BeforeMethod G1
g1Test()
BeforeMethod G2
g2Test()
关于java - 带有组的 TestNG BeforeMethod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7939892/
我要延期基类 来自所有测试用例类。 对于某些测试用例,我想使用管理员凭据登录,而对于某些测试用例,我想使用客户登录。 以前此代码运行正常,因为 launchBrowserAndLogin() 方法没有
我的@BeforeMethod 生成输出。 @BeforeMethod public void Random() throws Exception { //Generating Random
我有两个不同的测试类: public class Class A{ @BeforeMethod public void beforeEachMethod(){ //} @Test(groups = "
我想对来自不同类的测试使用相同的@BeforeMethod 实例,但它不会工作 package com.code.theCode public class theConfiguration{
我想知道 @BeforeMethod 对组的用法。在 http://testng.org/javadoc/org/testng/annotations/BeforeMethod.html它说: alw
@BeforeMethod (groups={"a"}) public void setup1() { //do something } @BeforeMethod (groups={"b"}
我正在使用带有 TestNG 的 Spring Test 来测试我们的 DAO,我想在某些方法之前运行一个特定的文本夹具脚本,允许在每个方法之后回滚修改,以便测试可以自由地做任何事情夹具数据。 最初我
我正在下面编写 Spring 单元测试代码。单元测试 @Before 方法没有被执行。由于它直接运行@PostConstruct,我收到错误 Caused by: java.lang.IllegalA
在带有testng注解的测试类中首先调用什么方法: annotated with @DataProvider annotated with @BeforeMethod ? 在我的测试过程中,我发现了顺
我的所有测试都有一个基类,它定义了 @BeforeMethod 适合大多数测试(我正在测试管理 UI,所以我通常想在测试前以管理员身份登录并登录在它之后出来) - 但有时我想跳过这个方法或者用扩展我的
我的问题和this SOF question基本一样,但处理 @BeforeMethod 而不是 TestNG 的 @BeforeClass。 在确定 @BeforeMethod 注释方法的执行顺序时
我正在使用 TestNG 进行单元测试。我正在使用 @BeforeMethod 来保存记录,然后执行更新、搜索、删除测试。 我正在寻找可以避免对某些测试用例执行 @BeforeMethod 方法调用的
有没有办法在@Test上依赖@BeforeMethod,因为在我的场景中,不同的TestMethod有不同的设置,我需要一个依赖于TestMethod的设置。我在这里添加一些代码片段以便更好地理解 @
我的测试有一个基础测试类,它在每次测试前进行初始化工作。 这是代码 public class BaseTestParameters { MyObj myObj; @DataProvider(n
我正在使用 TestNG 并且有一套测试。我想在每个需要有关该方法的信息的测试方法之前执行一个操作。作为一个简单的例子,假设我想在执行之前打印方法的名称。我可以编写一个用 @BeforeMethod
我需要在每个测试用例之前执行一些关键字。假设我有一个 .robot 文件,其中有 4 个测试用例,并且在执行这 4 个测试用例之前我需要运行关键字 4 次。在TestNG中,我们可以使用@Before
我目前正在使用 TestNG 框架并面临以下问题 - 我已经声明了一个在类中的每个测试之前运行的方法,方法是声明一个类似的方法 @BeforeMethod @Parameters({"type"})
我正在一台机器上运行 ThreadLocal 测试。我使用 @BeforeMethod 中的代码来启动网页。我还尝试过将其单独编写为我的 Base Test 类中的方法,并在 @BeforeMetho
我正在 testNG 中编写测试。每个测试方法共享一些存储在类级别的公共(public)属性,但每个测试方法都需要自己独立的驱动程序,因此驱动程序不能存储为类变量。这允许在并发运行时使用不同的驱动程序
我正在尝试使用一个组来运行与我正在从事的工作相关的测试子集,称为“当前”。问题是,如果我使用父类(super class)在 @BeforeMethod 中进行一些设置,则该方法会在我运行所有测试时运
我是一名优秀的程序员,十分优秀!