Имею строчку в коде:
private String host;
 
Имею файл testng.xml, в котором указал параметр:
<parameter name="host" value="//localhost" />
 
Переменная host у меня не юзается внутри метода, если бы так - то я использовал бы аннотацию @Parameters
Как мне загрузить этот параметр из testng.xml?
         
         
           
        
            
            
           1 лайк 
         
         
             
             
          
       
      
        
          
          
            joemast  
            (Александр Таранков)
           
           
          
              
                07.Сентябрь.2015 11:16:58
               
               
          #2 
           
         
        
          Аннотацию @Parameters можно использовать не только с тестовым методом, но и, например, с @BeforeMethod или @BeforeTest и там прочитать значение.
Или в чём вопрос?
         
         
        
            
            
           1 лайк 
         
         
             
             
          
       
      
        
        
          Да, но тогда эти параметры нужно будет поместить во внутрь функции, а они у меня просто как поля класса, вне функций.
         
         
        
            
            
            
         
         
             
             
          
       
      
        
          
          
            joemast  
            (Александр Таранков)
           
           
          
              
                07.Сентябрь.2015 11:24:11
               
               
          #4 
           
         
        
          По простому схема работы с внешними параметрами может выглядеть так:
в testng.xml есть параметры (они могут также передаваться через параметры командной строки или через окружение, не суть важно) 
при старте теста (например @BeforeTest) ты читаешь эти параметры в поля класса, от которого наследуются тесты 
у этого класса есть get-методы (геттеры), которые возвращают значения приватных полей класса. Они могут иметь модификаторы public 
в тестах дергаешь эти геттеры для чтения параметров 
 
Это только одна из реализаций, просто для примера
         
         
        
            
            
           1 лайк 
         
         
             
             
          
       
      
        
          
          
            ArtOfLife  
            (Sergey Korol)
           
           
          
              
                07.Сентябрь.2015 11:48:56
               
               
          #5 
           
         
        
          @BeforeMethod
public void setUp(ITestContext context) {
    Map<String, String> parameters = context.getCurrentXmlTest().getAllParameters();
}
 
П.С. Подойдет любая аннотация Before, где виден текущий контекст. Чтобы получить локальные изолированные параметры методов (include), придется залезть глубже в структуру контекста.
Предвкушая возможный вопрос: нет, вызывать метод самостоятельно не нужно, контекст будет вставлен автоматически (если конечно ваш Before метод находится в области видимости теста, к примеру, в родительском классе).
         
         
        
            
            
           1 лайк