Я хочу запустить код для отправки электронной почты с файлом emailable-report.html. В идеале это должно работать, когда я запускаю набор TestNG либо из IDE, либо из Maven. Я думаю, что здесь задан тот же вопрос: https://groups.google.com/forum/?fromgroups=#!topic/webdriver/fvJ-edHPJ3g
Из комментариев я пытаюсь понять минимальный способ сделать то, что предлагается, переопределить метод из существующего EmailableReporter с добавленным кодом для отправки электронной почты. Я пытаюсь избежать полной реализации моего собственного прослушивателя IReporter, хотя в основном потому, что мне трудно следовать заметкам об этом (немного помимо моего java-foo, приветствовал бы полный пример).
Мой класс выглядит так:
public class TestMailSender extends EmailableReporter{
TestMailer testMailer = new TestMailer();
Message resultEmail;
@Override
public void generateReport(List<XmlSuite> arg0, List<ISuite> arg1, String arg2) {
/* Use the parent class to do the work */
super.generateReport(arg0, arg1, arg2);
/* create email from utility class with address, subject line, message content */
resultEmail = testMailer.makeEmail("[email protected]", "Build: " + "test"
+ "suite results", "results attached");
/* fetch the hopefully completed default report */
/* TODO: get report to common path for both IDE and Maven runs */
File resultsFile = new File("./test-output/emailable-report.html");
/* add file to the email with build referencing name, then send the email */
resultEmail = testMailer.attachFile(resultEmail, resultsFile.getAbsoluteFile(),
"build_" + "test" + "_emailable-report.html");
testMailer.sendEmail(resultEmail);
}
}
Я получаю пустой результат, когда добавляю указанный выше класс в набор TestNG в качестве слушателя. Я пытаюсь сделать это в пакете testNG.xml, как описано здесь: http://testng.org/doc/documentation-main.html#listeners-testng-xml
Я предполагаю, что пустой результат может быть прогрессом, поскольку он не отправляет файл результатов предыдущего запуска, как это было, когда я помещал свой код в @AfterSuite. Я не должен запускать свой код, как я пытаюсь, после завершения файла emailable-report.html, потому что файл, отправленный по электронной почте, пуст. Я получил что-то в этом, если я изменю путь к файлу результатов, я получу исключение FileNotFoundException, но я предполагаю, что файл не сбрасывается и не закрывается в том месте, где я пытаюсь его отправить.
Где я могу поместить свой код, чтобы он мог найти и отправить заполненный файл emailable-report.html для текущего запуска? Должен ли я реализовать свой собственный прослушиватель IReporter или есть какой-то простой способ просто получить (completed) вывод прослушивателя по умолчанию, который создает файл emailable-report.html?