2017-02-02 16 views
1

Я работаю с веб-селенером селена с TestNG в java.Как указать значение времени выполнения в атрибуте @ test.enabled

Для выполнения набора тестов я хочу добавить значение времени выполнения в @Test(enabled=true/false). Но активированный атрибут принимает только константы (true/false) перед началом выполнения.

Есть ли способ управлять @Test способами решить, выполнять или нет?

+0

Продолжительность значение в смысле? Какую ценность вы пытаетесь передать? – shank087

ответ

1

Thanks for your efforts, but please find attached link which ll help you to achieve what I want to

Вы должны переопределить @test метод, с помощью интерфейса IAnnotationTransformer.

Благодаря Dhaval

+0

Правильно, 'IAnnotationTransformer' - лучшее решение! Чтобы закрыть вопрос, вы должны принять свой собственный ответ в качестве решения. – juherr

0

Dhaval, я думаю, вы думаете об этом неправильно; глядя на то, чего вы хотите достичь. Конечно, вы можете иметь глобальный scope var, что-то вроде hasTheScriptReachedAPointToIssueSessionID? Но в вашем случае вы, вероятно, захотите посмотреть зависимости метода testng (аннотации @Test - это методы/шаги тестирования в вашем тестовом классе). Итак, вот пример:

@Test (priority=1) 
public void login(){ 

//do the login stuff 
} 


@Test (priority=2, dependsOnMethods="login") 
public void clickAccountBtn(){  

//go to account 
} 


@Test (priority=3, dependsOnMethods="clickAccountBtn") 
public void editPassword() {    

//edit pass 
} 

Как вы можете видеть, здесь есть 2 предмета, которые помогут вам отрегулировать тестовый поток. Приоритеты и зависимости. Приоритеты помогают testNG регулировать порядок выполнения (во-первых, что последний), в то время как зависимости помогают вам быстро работать (например, если вы не можете войти в систему, пропустите остальные шаги, так как нет смысла пытаться щелкнуть мышью). Надеюсь, это имеет смысл, дайте мне знать, если это не так.

Вы можете найти больше здесь: TestNG Doc

удачи

+0

Да, ваш путь правильный и полезный, но в моем случае я хочу достичь как .. Предположим, что сначала я запускаю тестовый пакет с 10 тестовыми примерами, и он не работает на 5-м тестовом примере, поэтому, когда я снова запускаю тестовый набор, он должен начать выполнение теста с 6-й .. поэтому для меня я думаю, что мое решение полезно –

0

Да, есть один альтернативный способ решить погоду вы хотите выполнить метод или не

  • в вашем testing.xml вы можете использовать ярлык <exclude>, см. Ниже пример

    <test name="sample_Test" > 
        <classes> 
         <class name="ClassOneTest"> 
         <methods> 
           <exclude name="methodOne" /> 
         </methods> 
         </class> 
         <class name="ClassTwoTest"/> 
        </classes> 
    </test>