我有一些在 TestNG 中并行运行的 WebDriver 测试。而且我希望能够将日志记录到一个单独的文件中,以便在这样的目录结构中运行的每个测试:
target\logs\TestNGSuiteName(SuiteStartTime)
Test1ClassName.TestMethod1 (TestStartTime).log
Test1ClassName.TestMethod2 (TestStartTime).log
Run Code Online (Sandbox Code Playgroud)
等等。
使用 Log4j 和 SLF4j 是否可以为每个单独的 TestNG 测试创建单独的日志文件?
我曾尝试使用 RollingFileAppender,但它看起来不像是为像我在这里尝试做的那样为单独的日志文件运行单独的实例而设计的。
我收到了错误
ERROR Unable to invoke factory method in class class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile.
Unable to create Appender of type RollingFile.
Run Code Online (Sandbox Code Playgroud)
Log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Routing name="Routing">
<Routes pattern="$${ctx:ROUTINGKEY}">
<Route>
<RollingFile name="Rolling-${ctx:ROUTINGKEY}"
fileName="target/logs/${ctx:suiteTimestamp}/${ctx:testName} (${ctx:testStartTime}).log"
filePattern="target/logs/${ctx:testname} ${ctx:testStartTime}_%i.log.gz">
<PatternLayout>
<pattern>%d{HH:mm:ss.SSS} [%t] %p %c{3} - %m%n</pattern>
</PatternLayout>
<Policies> <!-- 6 hour rollover-->
<TimeBasedTriggeringPolicy interval="6" modulate="true"/>
<SizeBasedTriggeringPolicy size="10 MB"/>
</Policies>
</RollingFile>
</Route>
</Routes> …Run Code Online (Sandbox Code Playgroud) 默认情况下,conEmu 有没有办法打开多个不同的选项卡?我看到这个页面解释了如何使用splits来做到这一点,我意识到我可以做Ctrl+ T, 1, Enter,但我希望有一种方法可以自动做到这一点!
"%GIT_HOME%\usr\bin\sh.exe" --login -i -cur_console:t:"repo1":C:"%GIT_HOME%\git-bash.exe":d:"%USERPROFILE%\code\repo1"
"%GIT_HOME%\usr\bin\sh.exe" --login -i -new_console:t:"repo2":C:"%GIT_HOME%\git-bash.exe":d:"%USERPROFILE%\code\repo2"
"%GIT_HOME%\usr\bin\sh.exe" --login -i -new_console:t:"repo3":C:"%GIT_HOME%\git-bash.exe":d:"%USERPROFILE%\code\repo3"
Run Code Online (Sandbox Code Playgroud)