2013-11-27 2 views
1

Я хочу, чтобы хранить свои отчеты в другой папке, кроме тестов-вывода с отметкой времени так я добавил программу:Хочет хранить TestNG отчет в отдельной папке со временем штамповочного

public class Customreporter implements IReporter 
{ 
    File fd = new File(""); 

    String date; 
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd_hh-mm-ss"); 
    String folderNameWithTimeStamp = df.format(new Date()); 
    String currentDir = System.getProperty("user.dir") + "//Reports//"; 
    String finalPath = currentDir + folderNameWithTimeStamp; 

    @SuppressWarnings("deprecation") 
    public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) 
    { 
     TestNG.getDefault().setOutputDirectory(finalPath); 
     TestNG.getDefault().setXmlSuites(xmlSuites); 
    } 
} 

и изменил мой XML в

<suite name="suitedemo" parallel="false"> 
    <listeners> 
     <listener class-name="com.validation.Customreporter"> 
    </listeners> 
    <test name="suitetestdemo"> 
     <suite-files> 
      <suite-file path="./exceptions.xml" /> 
      <suite-file path="./screenshot.xml" /> 
     </suite-files> 
    </test> 
</suite> 

Теперь она создает новую папку каждый раз, но хранение иногда только emailalablereport. Что я могу сделать, я не хочу настраивать отчеты, я только хочу хранить отчеты в новой папке каждый раз, когда я запускаю списки. Я изменил файл сборки, он работает, но мы выполняем xml-файлы, а не создаем.

Заранее спасибо Smith

+0

Ваше описание в конце немного неясное, вы можете попробовать переформулировать его? – Benno

ответ

0

Я видел подобное поведение при использовании setOutputDirectory(). Но когда я изменил реализацию, это сработало для меня. Вместо создания testng xml во время разработки я динамически создаю класс TestNG XmlSuite. Затем установите другой выходной каталог, используя setOutputDirectory(). Дайте мне знать, если вам нужна дополнительная помощь.

На высоком уровне,

XmlSuite suite = new XmlSuite(); 
suite.setSuiteFiles(files); 
List<XmlSuite> suites = new ArrayList<XmlSuite>(); 
suites.add(suite); 
TestNG tng = new TestNG(); 
tng.setXmlSuites(suites); 

Я не тестировал setSuiteFiles(), как у меня есть мой TestNG XML на уровне класса. Также это не должно быть слушателем. Вы можете получить это в main() или в вашем init .......

Смежные вопросы