Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,37 +5,32 @@ import com.adarshr.gradle.testlogger.theme.Theme
import com.adarshr.gradle.testlogger.theme.ThemeFactory
import groovy.transform.CompileStatic
import org.gradle.StartParameter
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.testing.Test

@CompileStatic
class TestLoggerWrapper implements TestLogger {

private final StartParameter startParameter
private final Test test
private final TestLoggerExtension testLoggerExtension

private TestLogger testLoggerDelegate
private Provider<TestLoggerAdapter> testLoggerDelegate
private TestLogger cachedDelegate

TestLoggerWrapper(StartParameter startParameter, Test test, TestLoggerExtension testLoggerExtension) {
this.startParameter = startParameter
this.test = test
this.testLoggerExtension = testLoggerExtension
this.testLoggerDelegate = test.project.provider {
Theme theme = ThemeFactory.getTheme(startParameter, test, testLoggerExtension)

if (theme.type.parallel) {
return new ParallelTestLogger(test.logger, testLoggerExtension, theme)
} else {
return new SequentialTestLogger(test.logger, testLoggerExtension, theme)
}
}
}

@Delegate
TestLogger getTestLoggerDelegate() {
if (testLoggerDelegate) {
return testLoggerDelegate
}

Theme theme = ThemeFactory.getTheme(startParameter, test, testLoggerExtension)

if (theme.type.parallel) {
testLoggerDelegate = new ParallelTestLogger(test.logger, testLoggerExtension, theme)
} else {
testLoggerDelegate = new SequentialTestLogger(test.logger, testLoggerExtension, theme)
if (cachedDelegate == null) {
cachedDelegate = testLoggerDelegate.get()
}

return testLoggerDelegate
return cachedDelegate
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ abstract class AbstractFunctionalSpec extends Specification {
.withProjectDir(projectDir)
.withPluginClasspath()
.withDebug(true)
.withArguments(args.split(' '))
.withArguments(args.split(' ').toList() + ['--configuration-cache', '--stacktrace'])
.forwardOutput()
.build()
} catch (UnexpectedBuildFailure e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ class TestLoggerPluginSpec extends AbstractFunctionalSpec {
when:
def result = run(
'sample-kotest-tests',
'test --stacktrace'
'test'
)
then:
def lines = getNestedLoggerOutput(result.output).lines
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,28 @@ package com.adarshr.gradle.testlogger.logger
import com.adarshr.gradle.testlogger.TestLoggerExtension
import com.adarshr.gradle.testlogger.theme.ThemeType
import org.gradle.StartParameter
import org.gradle.api.Project
import org.gradle.api.logging.Logger
import org.gradle.api.logging.configuration.ConsoleOutput
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.testing.Test
import spock.lang.Specification
import java.util.concurrent.Callable

class TestLoggerWrapperSpec extends Specification {

def extensionMock = Mock(TestLoggerExtension)
def projectMock = Mock(Project) {
provider(_ as Callable<?>) >> { Callable callable ->
def result = callable.call()
return Mock(Provider) {
get() >> result
}
}
}
def testMock = Mock(Test) {
getLogger() >> Mock(Logger)
getProject() >> projectMock
}
def startParameterMock = Mock(StartParameter) {
getConsoleOutput() >> ConsoleOutput.Auto
Expand Down