TestNg @afterclass не вызывается, если в классе отключен тест - PullRequest
1 голос
/ 21 октября 2011

Я использую testng + webdriver для автоматического тестирования.И есть проблема, что аннотация @AfterClass не работает, как я ожидал.

У меня есть следующий класс тестирования:

    public class WorkspaceTest{
        @BeforeClass
        public void init(){
            //Initialization steps
        }

        @Test
        public void testMethod1{...}

        @Test
        public void testMethod2{...}

        @Test(enabled=false)
        public void testMethod3{...}

        @AfterClass(alwaysRun=true)
        public void tearDown{
            //finalizing steps 
        }

}

Если все методы тестирования включены- Метод tearDown работает нормально, но если один из тестов отключен - я даже не достигаю точки останова в методе tearDown.

Ожидается ли поведение аннотации @AfterClass?или я что-то не так делаю?

Testng version: 6.1.1
Webdriver 2.5.0
Java 1.6.0_26

Ответы [ 2 ]

1 голос
/ 22 октября 2011

У меня работает:

tearDown
PASSED: testMethod1
PASSED: testMethod2

===============================================
    Test1
    Tests run: 2, Failures: 0, Skips: 0
===============================================

Вот источник, который я использовал:

public class A {
      @BeforeClass
      public void init(){
          //Initialization steps
      }

      @Test
      public void testMethod1() {}

      @Test
      public void testMethod2() {}

      @Test(enabled=false)
      public void testMethod3() {}

      @AfterClass(alwaysRun=true)
      public void tearDown() {
        System.out.println("tearDown");
      }

}
0 голосов
/ 23 апреля 2015

Если вы используете стандартный junit, @AfterClass должен быть аннотирован публичным методом static void, например:

@AfterClass
public static void logout() {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...