Может ли кто-нибудь помочь мне в следующей ситуации?Именование скриншота, основанного на имени метода во время выполнения
Я должен создать общий метод для получения скриншотов с помощью Selenium Webdriver, где имя файла скриншота должно обновляться как имя метода, в котором я его называю.
Это то, что я сейчас:
создал метод, чтобы получить временную метку и использовать его для имени файла:
public String getTimeStamp() {
String timestamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
return timestamp;
}
// Method to get the Screenshot at any given instance. The Screenshots taken are copied to Screenshots folder under `"build\jbehave\view"`.
public void getScreenShots() throws Exception {
File srcfile = driver.getScreenshotAs(OutputType.FILE);
File folder = new File("Screenshots");
if(folder.exists()){
FileUtils.copyFile(srcfile, new File("./build/jbehave/view/Screenshots/" + "Screenshot_" + getTimeStamp() + ".png"));
}else {
File dir1 = new File("Screenshots");
dir1.mkdir();
FileUtils.copyFile(srcfile, new File("./build/jbehave/view/Screenshots/" + "Screenshot_" + getTimeStamp() + ".png"));
}
}
Я ищу способ, который может получить имя методы, в которых я вызываю вышеупомянутый метод getScreenShots()
, и иметь его как имя моего файла во время выполнения, а не иметь отметки времени.
Используется ли это в тесте? Если да, то вы имеете в виду имя метода тестирования? – Gavin
Использование JUnit было бы легко, как [здесь] (http://stackoverflow.com/questions/473401/get-name-of-currently-executing-test-in-junit-4) – elTomato
@Gavin: Я отредактировал мой пост, чтобы сделать его более понятным. Любая помощь будет высоко оценен. –