Log4J mit JUnit-Tests.
Möchte ich hinzufügen, Protokollierung zu meinem Selenium-Java-tests. Ich habe implementiert die log4jFramework das funktioniert gut, entweder die überführung der Protokolle in der Konsole oder in eine Datei.
Ich bin mit dem JUnit-test-framework, und ich würde gerne die Prüfung, name und Datum/Uhrzeit in den Dateinamen der Datei, anstatt die standard-Konvention zu sein scheint voranstellen einer Zahl +1 in die Datei, wenn eine Datei bereits vorhanden ist.
Dies ist meine log4j.Eigenschaften Datei...
log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.File=~/Desktop/Selenium/AutomationLogs/automationLog
log4j.appender.rollingFile.MaxFileSize=2MB
log4j.appender.rollingFile.MaxBackupIndex=2
log4j.appender.rollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss} %p %t %c - %m%n
Was ich gefunden habe, online nur scheint relevant zu daily rolling-Dateien. Ich möchte erzeugen eine neue Datei für die Protokolle jedes mal, wenn ich einen unit test
- wenn Sie sagen, "test-name" meinst du den Namen der test-Methode oder der name der test Klasse?
- Folgen Sie dieser :stackoverflow.com/questions/1444520/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ich Ihre Bedürfnisse verstehen und richtig erreicht werden kann dies durch die Kombination der folgenden:
Insbesondere müssen Sie erstellen eine benutzerdefinierte JUnit Regel. Ich entschied mich für die Verlängerung der
TestWatcher
wie es scheint, die meisten entsprechendenSobald Sie haben, können Sie es als eine Regel in Ihrem test-Klasse. In der Regel wird einfach ein Feld in dem test (Durchführung der
@Rule
annotation). Hier rief ich esrule
(nicht sehr einfallsreich, das gebe ich zu). Um sich aus dem test-Methode, die Sie aufrufen müssenrule.getLogger()
.Wenn ich diesen test ausführen, es erstellt diese beiden Dateien unter meine
~/Desktop/Selenium/AutomationLogs
Verzeichnis:Den Inhalt der ersten Datei sieht wie folgt aus: