http://code.google.com/p/testng/issues/detail?id=102 μμ 볡μ¬
TestNG 6.3.1λ‘λ ν μ€νΈλ¨
μ΄λ€ λ¨κ³μμ λ¬Έμ λ₯Ό μ¬νν©λκΉ?
λ€μκ³Ό κ°μ ν
μ€νΈ ν΄λμ€κ° μμ΅λλ€.
@Test(νμ±ν = κ±°μ§)
κ³΅κ° ν΄λμ€ MyTest {
@DataProvider(μ΄λ¦ = "λΈλΌ")
κ°μΈ κ°μ²΄[][] bla() {
μ κ°μ²΄ λ°ν[][] {
μλ‘μ΄ κ°μ²΄[] { "bla"}
};
}
@Test(dataProvider = "λΈλΌ")
κ³΅κ° λ¬΄ν¨ blatest(λ¬Έμμ΄ bla) {
System.out.println(bla);
}
}
μμ μΆλ ₯μ 무μμ
λκΉ?
blatest λ©μλκ° μ€νλμ§ μκ³ μ½μ μΆλ ₯μ΄ μμ κ²μΌλ‘ μμν©λλ€. λμ blatestκ° μ€νλκ³ "bla"κ° μΈμλ©λλ€.
μ΄λ€ λ²μ μ μ νμ μ¬μ©νκ³ μμ΅λκΉ?
λλ Surefire νλ¬κ·ΈμΈ 2.7.2λ₯Ό μ¬μ©νμ¬ maven 2.2.1/3.0.3μμ μ€ννλ testng 5.11/6.0.1λ‘ ν
μ€νΈνμ΅λλ€.
μλμ μΆκ° μ 보λ₯Ό μ 곡νμμμ€.
μλ λμ½λΌμ€,
λ©μλμ @Test λ©μλλ₯Ό μ¬μ©νμ§ μλ κ²½μ° μ΄λ₯Ό λ³Ό μ μμ§λ§, μ¬μ©νλ μ¦μ(dataProviderλ₯Ό μ¬μ©ν μμ μμμμ κ°μ΄) enabled
μμ±μ΄ μ¬μ μλκ³ κΈ°λ³Έκ° μ¬μ€μ΄λ―λ‘ λ³΄κ³ μλ λμμ
λλ€.
μ΄κ² λ§μ΄ λΌ?
λ€, μΈλλ¦μκ² κ°μ¬ν©λλ€.
ν΄λμ€μ μ£Όμ @test(enabled=false)κ° μ€νμμ ν΄λμ€λ₯Ό μμ ν μ μΈνλ€λ μλͺ»λ κ°μ μ ν©λλ€.
μ½κ° λ° μ§κ΄μ μ΄λΌλ λ° λμνμ§λ§ μ§κΈ λ°κΎΈκΈ°μλ λ무 λ¦μμ΅λλ€. μ¬νκ²λ...
μλ
, μΈλλ¦!
@Test μ£Όμμ μ 맀κ°λ³μλ₯Ό μΆκ°νκ³ "enabledClass"μ κ°μ μ΄λ¦μΌλ‘ νΈμΆνκ³ κΈ°λ³Έμ μΌλ‘ trueλ‘ μ€μ νλ κ²μ μ΄λ»μ΅λκΉ? λ©μλ μμ€ μ£Όμμ κ΄κ³μμ΄ μ 체 ν΄λμ€λ₯Ό λΉνμ±ννλ €λ©΄ ν΄λμ€ μμ€(enabledClass = false)μμλ§ μ¬μ©ν΄μΌ νλ©° λ©μλμ μΆκ°λ κ²½μ° λ¬΄μλ©λλ€.
μ΄λ° μμΌλ‘ μ°λ¦¬λ μ΄μ λ²μ κ³Όμ νΈνμ±μ μ μ§νλ©΄μ λμμ κ½€ μ μ©ν κΈ°λ₯μ μ 곡ν κ²μ
λλ€.
μνλ κ²½μ° μ§μ ꡬννκ³ pull μμ²μ μ 곡ν μ μμ΅λλ€.
미리 κ°μ¬λ립λλ€!
@andronix83 ,
enabled
μ enabledClass
μ¬μ΄μ λ―Έλ¬ν μ°¨μ΄λ₯Ό μ€λͺ
ν΄μΌ νκΈ° λλ¬Έμ μ΄κ²μ΄ λ νΌλμ€λ¬μμ§κΉ κ±±μ λ©λλ€.
νμ¬ enabled
λμμ κ°μ₯ μ§κ΄μ μ΄μ§λ μμ§λ§ μ΄ λ¬Έμ κ° μ κΈ°λ νμλ‘ νλ¨νλ©΄ μΌλ°μ μΌλ‘ λ¬Έμ κ° λμ§ μλ κ² κ°μ΅λλ€(κ±°μ μμ).
μλ νμΈμ μΈλλ¦μ λλ€.
λλ μ€μ λ‘ μ§λ μ£Όμ μ΄ λ¬Έμ λ₯Ό κ²ͺμμ΅λλ€. μ λ Facebook Graph APIμ μμ‘΄νλ μΉ μλ²μμ μΌνκ³ μμ΅λλ€. κ·Έλν APIμ λλ¬νλ μ½λμ μμ‘΄νλ μΌλΆ ν μ€νΈ λ©μλκ° μλ ν μ€νΈ ν΄λμ€κ° μμκ³ λ€λ₯Έ ν μ€νΈ λ©μλλ ν΄λΉ μλΉμ€μ μ ν μμ‘΄ν νμκ° μμμ΅λλ€. κ·Έλ¬λ€κ° ν μκ° λκ² νμ΄μ€λΆ μ 체μ μ μ μ΄ λ°μνμ΅λλ€. μ΄λ‘ μΈν΄ μ΄ ν΄λμ€μ μΌλΆ ν μ€νΈκ° μ€ν¨νμ΅λλ€.
λλ¨Έμ§ κ°λ° νμ μ°¨λ¨ ν΄μ μνλ‘ μ μ§νκΈ° μν΄ λ΄κ° νκ³ μΆμλ κ²μ ν΄λμ€ μμ€μμ @Test(enabled=false) μ£Όμμ ν΅ν΄ μ΄ ν΄λμ€μ λͺ¨λ ν μ€νΈλ₯Ό μ¦μ λΉνμ±ννλ κ²μ λλ€. λ¬Όλ‘ , κ·Έκ²μ ν¨κ³Όκ° μμμ΅λλ€. λμ , μ€ν¨ν ν μ€νΈ λ°©λ²μ νλμ© λΉνμ±νν΄μΌ νκ³ , μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ° νμν κ²λ³΄λ€ λ λ§μ μκ°μ΄ νμνμ΅λλ€.
μ΄μμ μΌλ‘ TestNGλ JUnitμ @Ignore μ£Όμκ³Ό μ μ¬ν κΈ°λ₯μ μ§μν©λλ€. http://junit.sourceforge.net/javadoc/org/junit/Ignore.html. κ°λ¨ν λ§ν΄μ κ°λ°μλ μ€μ λ‘ μ΄ κΈ°λ₯μ μν©λλ€.
κ°μ¬ν©λλ€.
@ecbrodie μ΄κ²μ μ΄λ―Έ μ§μλμ§λ§(μλν΄λ³΄μΈμ!) κ²½κ³ κ° μμ΅λλ€. @Test
μ£Όμμ΄ μλ λͺ¨λ κ°λ³ λ©μλλ ν
μ€νΈλ₯Ό λ€μ νμ±νν©λλ€.
@Test(enabled = false)
public class T {
void f() {} // will not run
}
@Test(enabled = false)
public class T {
<strong i="10">@Test</strong>
void f() {} // WILL run!
}
μ΄λ λ©μλ μμ€μ μμ±μ΄ ν΄λμ€ μμ€μμ μ μλ μμ±μ μ¬μ μνλ μλ―Έ λλ¬Έμ λ©μλ μμ€ @Test
μ£Όμμ κΈ°λ³Έμ μΌλ‘ κΈ°λ³Έκ°μ΄λ―λ‘ @Test(enabled = true)
λΌκ³ λ§ν©λλ€...
λ§λ λ§μ΄λ€?
@cbeustλ , κ·Έ μλ₯Ό λ€μ΄μ£Όμ
μ κ°μ¬ν©λλ€. νμ§λ§ κ·Έκ²μ μ΄λ―Έ λ¬Έμ λ₯Ό μ΄ν΄νκ³ μμκΈ° λλ¬Έμ μ λ₯Ό μ€ν΄νμ κ² κ°μ΅λλ€. λ΄κ° λ§λ€λ €κ³ νλ μμ μ @Test(enabled=true/false)μ νμ¬ μλ―Έ 체κ³μ λ©μλμ μ€μ λ λͺ¨λ κ²μ 무μνκΈ° μν΄ ν΄λμ€ μμ€μμ νμ±νλ μ¬μ μλ₯Ό μ€μ λ‘ μ§μ νλ λ°©λ²μ κ°κ³ μ νλ μꡬμμ΅λλ€. μμ€, μλ§λ μΌμ’
μ enabledClass
μ£Όμ κ°μ μΆκ°νλ κ²μ λν μ
μ₯μ μ¬κ³ ν΄μΌ ν λμ
λλ€.
@Test(enabled) μλ―Έ 체κ³λ₯Ό μ¬μ©νμ¬ μ·¨ν μλ μ κ·Ό λ°©μμ λν΄ μ½κ°μ κ²½λ©Έμ λνλ΄λ κ² κ°μ΅λλ€. κ·Έκ²μ΄ μ¬μ€μ΄λΌλ©΄ κ·Έ μλ―Έλ₯Ό λ μ§κ΄μ μ΄λΌκ³ λλΌλ κ²μΌλ‘ κ°μ Έμ€μ§ μκ² μ΅λκΉ?
λμν©λλ€. @Test(enabledClass = false)
μ΄ μλ―Έκ° μμΌλ©° μ΄μ λ²μ κ³Όμ νΈνμ±μ κΉ¨λ¨λ¦¬μ§ μκ³ μ μμ ꡬννλ μ μΌν λ°©λ²μ΄λΌκ³ μκ°ν©λλ€. λ무 μ¬μμΌ ν©λλ€.
κ·ν λλ @juherr κ° PR μ μΆμ κ΄μ¬μ΄ μμΌμλκΉ?
κΈ°λΆμ΄ μ’μ§ μμ΅λλ€. ν΄λμ€μμλ§ μ¬μ©λλ μ μμ±μ μΆκ°νλ μμ΄λμ΄κ° λ§μμ λ€μ§ μμ΅λλ€.
κ·Έλ° λ€μ ν
μ€νΈλ₯Ό μ€ννλ €λ©΄ μμ€λ₯Ό μμ ν΄μΌ νκΈ° λλ¬Έμ enable=false
λ μμ€μμ μ¬μ©ν λ λμ μ΅κ΄μ΄λΌκ³ μκ°ν©λλ€.
IMO, ν΄λμ€ μ νμ μ·¨μνλ €λ©΄ testng.xml
λ₯Ό λμ μ¬μ©ν΄μΌ ν©λλ€.
@ecbrodie ν
μ€νΈλ₯Ό μ΄λ»κ² μ€νν©λκΉ?
BTW, λμ λ΄κ° μ μνλ κ²μ ν΄λμ€μμ enable=false
μ κΈ°λ³Έ λμμ μ¬μ μνλ IAnnotationTransformer
ꡬνμ μ 곡νλ κ²μ
λλ€.
IAnnotationTransformer
λ¨μ§μμλ€ enable=false
μμ μ ν΄λμ€κ°μλ κ²½μ° λͺ¨λ ν
μ€νΈ enable=false
.
μ΄μ λ²μ κ³Όμ νΈνμ±μ μμμν€μ§ μμΌλ©° νΉμ 맀κ°λ³μλ₯Ό μΆκ°νμ§ μμ΅λλ€.
@cbeust μ΄λ»κ² μκ°νμΈμ?
@juherr Cool PR, IAnnotationTransformer
λ‘ νλ κ²μ μ λ§ κ°λ¨ν©λλ€.
λ΄ μ μΌν κ΄μ¬μ¬λ μ¬μ©μμκ² enabledClass
μμ±κ³Ό λ¬λ¦¬ μ¬μ©νκΈ°κ° μ‘°κΈ λ μ λΉλ‘λ€λ κ²μ
λλ€.
ν΄λμ€ μμ€( suiteName
, testName
)μμλ§ μ μ©ν μ μλ λͺ κ°μ§ μμ±μ΄ μ΄λ―Έ μμ΅λλ€.
λ΄κ° λ§νλ―μ΄, λλ μ μ€ μΌμ΄μ€λ₯Ό μ’μνμ§ μμ΅λλ€. κ·Έλ¦¬κ³ μ§λ 4λ λμ λ¨ 2λͺ μκ²λ§ λ¬Όμ΄λ΄λ μΆ©λΆν κ² κ°μμ :)
@juherr μΆ©λΆν©λλ€.
@ecbrodie PRμ λν΄ μ΄λ»κ² μκ°νμΈμ?
@cbeust
κ·Έλ₯ κΆκΈν©λλ€. μ΄ μμ
μ μνν μ μλ λ΄μ₯ AnnotationTransformerλ₯Ό μ 곡νλ©΄ μ΄λ»κ² λ κΉμ?
μ, #816μ΄ μ μνλ κ²μ λλ€.
@juherr
κ·Έ PR μ 보λ₯Ό 곡μ ν΄ μ£Όμ
μ κ°μ¬ν©λλ€. μ΄κ²μ΄ λ³ν©λκΈ°λ₯Ό κΈ°λ€λ¦¬λ μ΄μ κ° μμ΅λκΉ?
μλμ κ°μ μλ리μ€κ° μλ κ²½μ° μ΄λ»κ² ν©λκΉ?
@Test(groups = { "regression", "smoke" }, dependsOnGroups = { "Creation" })
public class EditName {
@Test(dataProvider="SomeTestData",dataProviderClass=SearchData.class)
public void TC_1(String Msg) throws Exception{
System.out.println(Msg);
}
@Test(dataProvider="SomeTestData",dataProviderClass=SearchData.class, dependsOnMethods = { "TC_1" }))
public void TC_2(String Msg) throws Exception{
System.out.println(Msg);
}
}
@Rameshwar-Juptimath μνκ³Ό μ΄ λ¬Έμ μ κ΄κ³λ 무μμ λκΉ?
ν΄λμ€ λ° λ©μλ μμ€μμ @Testμ μ§κ΄μ μ΄μ§ μμ λμμΌλ‘ μΈν΄.
λͺ¨λ² μ¬λ‘λ‘ λ¬΄μμ κΆμ₯ν΄μΌ ν©λκΉ?
ν
μ€νΈμμ λ λ€ μ¬μ©νλ κ²μ νΌν΄μΌ ν©λκΉ?
μ°λ¦¬λ κ°κ°μ κ²½μ°μ λ€λ₯Έ λ°μ΄ν° 곡κΈμλ₯Ό κ°μ§κΈ° μν΄ λ©μλ μμ€μμ λ€μκ° μ¬μ©νλ―λ‘ ν΄λμ€μμ μ¬μ©νμ§ μμμΌ ν©λκΉ?
μκ°?
@aliciatang λμμ λͺ¨λ μ£Όμ μμ±μ λν΄ λμΌν©λλ€. λ©μλμ κ°μ΄ ν΄λμ€μ κ°μ μ¬μ μν©λλ€.
6.13 μ΄νλ‘ μμνλ λμμΈ @Ignore
λ₯Ό μ¬μ©ν μ μμ΅λλ€. @Ignore
λν λ¬Έμλ μ¬κΈ° μμ μ°Ύμ μ