From a6c1281fbe13fe876d28a40ec7e55db3e15220ef Mon Sep 17 00:00:00 2001 From: Anton Malinskiy Date: Tue, 24 Oct 2023 19:03:29 +1000 Subject: [PATCH] feat(configuration): move testClassRegex to parser configuration (#851) * feat(configuration): move testClassRegex to the only parser that needs it --- README.md | 1 - .../marathon/config/Configuration.kt | 7 ---- .../config/vendor/VendorConfiguration.kt | 2 +- .../vendor/ios/TestParserConfiguration.kt | 16 +++++++- .../serialization/ConfigurationFactoryTest.kt | 5 +-- .../resources/fixture/config/sample_1.yaml | 2 - .../fixture/config/sample_1_no_tracking.yaml | 2 - .../resources/fixture/config/sample_1_rp.yaml | 2 - .../kotlin/com/malinskiy/marathon/Marathon.kt | 4 +- docs/docs/android/install.md | 1 - docs/docs/index.md | 1 - docs/docs/intro/configure.md | 36 ---------------- docs/docs/intro/overview.md | 1 - docs/docs/ios/configure.md | 14 ++++++- .../marathon/gradle/MarathonExtension.kt | 6 --- .../marathon/gradle/MarathonPlugin.kt | 1 - sample/android-cucumber-app/Marathonfile | 2 - sample/ios-app/Marathonfile-uiTests | 1 - sample/ios-app/Marathonfile-unitTests | 3 +- .../com/malinskiy/marathon/ios/AppleVendor.kt | 41 +++++++++++-------- .../malinskiy/marathon/ios/NmTestParser.kt | 6 ++- .../resources/sample-xcworkspace/Marathonfile | 1 - .../test/factory/ConfigurationFactory.kt | 2 - 23 files changed, 62 insertions(+), 95 deletions(-) diff --git a/README.md b/README.md index ad2afc83e..e019194fa 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,6 @@ iOS: ```yaml name: "My application" outputDir: "derived-data/Marathon" -testClassRegexes: ["^((?!Abstract).)*Tests$"] vendorConfiguration: type: "iOS" bundle: diff --git a/configuration/src/main/kotlin/com/malinskiy/marathon/config/Configuration.kt b/configuration/src/main/kotlin/com/malinskiy/marathon/config/Configuration.kt index 388583d26..a9db8075d 100644 --- a/configuration/src/main/kotlin/com/malinskiy/marathon/config/Configuration.kt +++ b/configuration/src/main/kotlin/com/malinskiy/marathon/config/Configuration.kt @@ -36,7 +36,6 @@ data class Configuration private constructor( val isCodeCoverageEnabled: Boolean, val uncompletedTestRetryQuota: Int, - val testClassRegexes: Collection, val includeSerialRegexes: Collection, val excludeSerialRegexes: Collection, @@ -68,7 +67,6 @@ data class Configuration private constructor( "ignoreFailures" to ignoreFailures.toString(), "isCodeCoverageEnabled" to isCodeCoverageEnabled.toString(), "executionStrategy" to executionStrategy.toString(), - "testClassRegexes" to testClassRegexes.toString(), "includeSerialRegexes" to includeSerialRegexes.toString(), "excludeSerialRegexes" to excludeSerialRegexes.toString(), "testBatchTimeoutMillis" to testBatchTimeoutMillis.toString(), @@ -100,8 +98,6 @@ data class Configuration private constructor( if (isCodeCoverageEnabled != other.isCodeCoverageEnabled) return false if (executionStrategy != other.executionStrategy) return false if (uncompletedTestRetryQuota != other.uncompletedTestRetryQuota) return false - //For testing we need to compare configuration instances. Unfortunately Regex equality is broken so need to map it to String - if (testClassRegexes.map { it.pattern } != other.testClassRegexes.map { it.pattern }) return false if (includeSerialRegexes.map { it.pattern } != other.includeSerialRegexes.map { it.pattern }) return false if (excludeSerialRegexes.map { it.pattern } != other.excludeSerialRegexes.map { it.pattern }) return false if (testBatchTimeoutMillis != other.testBatchTimeoutMillis) return false @@ -132,7 +128,6 @@ data class Configuration private constructor( result = 31 * result + isCodeCoverageEnabled.hashCode() result = 31 * result + executionStrategy.hashCode() result = 31 * result + uncompletedTestRetryQuota - result = 31 * result + testClassRegexes.hashCode() result = 31 * result + includeSerialRegexes.hashCode() result = 31 * result + excludeSerialRegexes.hashCode() result = 31 * result + testBatchTimeoutMillis.hashCode() @@ -163,7 +158,6 @@ data class Configuration private constructor( var executionStrategy: ExecutionStrategyConfiguration = ExecutionStrategyConfiguration(), var uncompletedTestRetryQuota: Int = Integer.MAX_VALUE, - var testClassRegexes: Collection = listOf(Regex("^((?!Abstract).)*Test[s]*$")), var includeSerialRegexes: Collection = emptyList(), var excludeSerialRegexes: Collection = emptyList(), @@ -197,7 +191,6 @@ data class Configuration private constructor( isCodeCoverageEnabled = isCodeCoverageEnabled, executionStrategy = executionStrategy, uncompletedTestRetryQuota = uncompletedTestRetryQuota, - testClassRegexes = testClassRegexes, includeSerialRegexes = includeSerialRegexes, excludeSerialRegexes = excludeSerialRegexes, testBatchTimeoutMillis = testBatchTimeoutMillis, diff --git a/configuration/src/main/kotlin/com/malinskiy/marathon/config/vendor/VendorConfiguration.kt b/configuration/src/main/kotlin/com/malinskiy/marathon/config/vendor/VendorConfiguration.kt index ac2bbcb37..ce1c01dc0 100644 --- a/configuration/src/main/kotlin/com/malinskiy/marathon/config/vendor/VendorConfiguration.kt +++ b/configuration/src/main/kotlin/com/malinskiy/marathon/config/vendor/VendorConfiguration.kt @@ -142,7 +142,7 @@ sealed class VendorConfiguration { @JsonProperty("compactOutput") val compactOutput: Boolean = false, @JsonProperty("rsync") val rsync: RsyncConfiguration = RsyncConfiguration(), @JsonProperty("xcodebuildTestArgs") val xcodebuildTestArgs: Map = emptyMap(), - @JsonProperty("testParserConfiguration") val testParserConfiguration: com.malinskiy.marathon.config.vendor.ios.TestParserConfiguration = com.malinskiy.marathon.config.vendor.ios.TestParserConfiguration.NmTestParserConfiguration, + @JsonProperty("testParserConfiguration") val testParserConfiguration: com.malinskiy.marathon.config.vendor.ios.TestParserConfiguration = com.malinskiy.marathon.config.vendor.ios.TestParserConfiguration.NmTestParserConfiguration(), @JsonProperty("signing") val signing: SigningConfiguration = SigningConfiguration(), ) : VendorConfiguration() { diff --git a/configuration/src/main/kotlin/com/malinskiy/marathon/config/vendor/ios/TestParserConfiguration.kt b/configuration/src/main/kotlin/com/malinskiy/marathon/config/vendor/ios/TestParserConfiguration.kt index e8d4fa639..e1a71b59f 100644 --- a/configuration/src/main/kotlin/com/malinskiy/marathon/config/vendor/ios/TestParserConfiguration.kt +++ b/configuration/src/main/kotlin/com/malinskiy/marathon/config/vendor/ios/TestParserConfiguration.kt @@ -13,6 +13,20 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo JsonSubTypes.Type(value = TestParserConfiguration.XCTestParserConfiguration::class, name = "xctest"), ) sealed class TestParserConfiguration { - object NmTestParserConfiguration : TestParserConfiguration() + data class NmTestParserConfiguration(val testClassRegexes: Collection = listOf(Regex("^((?!Abstract).)*Test[s]*$"))) : TestParserConfiguration() { + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + + other as NmTestParserConfiguration + + //For testing we need to compare configuration instances. Unfortunately Regex equality is broken so need to map it to String + return testClassRegexes.map { it.pattern } == other.testClassRegexes.map { it.pattern } + } + + override fun hashCode(): Int { + return testClassRegexes.hashCode() + } + } object XCTestParserConfiguration : TestParserConfiguration() } diff --git a/configuration/src/test/kotlin/com/malinskiy/marathon/config/serialization/ConfigurationFactoryTest.kt b/configuration/src/test/kotlin/com/malinskiy/marathon/config/serialization/ConfigurationFactoryTest.kt index 4ff9f6346..49a810f81 100644 --- a/configuration/src/test/kotlin/com/malinskiy/marathon/config/serialization/ConfigurationFactoryTest.kt +++ b/configuration/src/test/kotlin/com/malinskiy/marathon/config/serialization/ConfigurationFactoryTest.kt @@ -154,7 +154,6 @@ class ConfigurationFactoryTest { TestFilterConfiguration.AnnotationFilterConfiguration(".*".toRegex()), TestFilterConfiguration.AnnotationDataFilterConfiguration(".*".toRegex(), ".*".toRegex()) ) - configuration.testClassRegexes.map { it.toString() } shouldContainSame listOf("^((?!Abstract).)*Test$") // Regex doesn't have proper equals method. Need to check the patter itself configuration.includeSerialRegexes.joinToString(separator = "") { it.pattern } shouldBeEqualTo """emulator-500[2,4]""".toRegex().pattern @@ -189,7 +188,7 @@ class ConfigurationFactoryTest { screenshotConfiguration = ScreenshotConfiguration(false, 1080, 1920, 200) ), 15000L, - AllureConfiguration() + AllureConfiguration(), ) } @@ -231,8 +230,6 @@ class ConfigurationFactoryTest { configuration.filteringConfiguration.allowlist.shouldBeEmpty() configuration.filteringConfiguration.blocklist.shouldBeEmpty() - configuration.testClassRegexes.map { it.toString() } shouldContainSame listOf("^((?!Abstract).)*Test[s]*$") - configuration.includeSerialRegexes shouldBeEqualTo emptyList() configuration.excludeSerialRegexes shouldBeEqualTo emptyList() configuration.ignoreFailures shouldBeEqualTo false diff --git a/configuration/src/test/resources/fixture/config/sample_1.yaml b/configuration/src/test/resources/fixture/config/sample_1.yaml index 754869033..25ba2471b 100644 --- a/configuration/src/test/resources/fixture/config/sample_1.yaml +++ b/configuration/src/test/resources/fixture/config/sample_1.yaml @@ -60,8 +60,6 @@ filteringConfiguration: - type: "annotationData" nameRegex: ".*" valueRegex: ".*" -testClassRegexes: - - "^((?!Abstract).)*Test$" includeSerialRegexes: - "emulator-500[2,4]" excludeSerialRegexes: diff --git a/configuration/src/test/resources/fixture/config/sample_1_no_tracking.yaml b/configuration/src/test/resources/fixture/config/sample_1_no_tracking.yaml index a1d93d7e0..2096217cf 100644 --- a/configuration/src/test/resources/fixture/config/sample_1_no_tracking.yaml +++ b/configuration/src/test/resources/fixture/config/sample_1_no_tracking.yaml @@ -62,8 +62,6 @@ filteringConfiguration: - type: "annotationData" nameRegex: ".*" valueRegex: ".*" -testClassRegexes: - - "^((?!Abstract).)*Test$" includeSerialRegexes: - "emulator-500[2,4]" excludeSerialRegexes: diff --git a/configuration/src/test/resources/fixture/config/sample_1_rp.yaml b/configuration/src/test/resources/fixture/config/sample_1_rp.yaml index 7a1465277..e9ea6e11f 100644 --- a/configuration/src/test/resources/fixture/config/sample_1_rp.yaml +++ b/configuration/src/test/resources/fixture/config/sample_1_rp.yaml @@ -58,8 +58,6 @@ filteringConfiguration: regex: ".*" - type: "annotation" regex: ".*" -testClassRegexes: - - "^((?!Abstract).)*Test$" includeSerialRegexes: - "emulator-500[2,4]" excludeSerialRegexes: diff --git a/core/src/main/kotlin/com/malinskiy/marathon/Marathon.kt b/core/src/main/kotlin/com/malinskiy/marathon/Marathon.kt index 933c3b09b..610dbde16 100644 --- a/core/src/main/kotlin/com/malinskiy/marathon/Marathon.kt +++ b/core/src/main/kotlin/com/malinskiy/marathon/Marathon.kt @@ -215,9 +215,7 @@ class Marathon( } private fun applyTestFilters(parsedTests: List): List { - var tests = parsedTests.filter { test -> - configuration.testClassRegexes.all { it.matches(test.clazz) } - } + var tests = parsedTests configuration.filteringConfiguration.allowlist.forEach { tests = it.toTestFilter().filter(tests) } configuration.filteringConfiguration.blocklist.forEach { tests = it.toTestFilter().filterNot(tests) } return tests diff --git a/docs/docs/android/install.md b/docs/docs/android/install.md index 290103b17..5b5a3bdc3 100644 --- a/docs/docs/android/install.md +++ b/docs/docs/android/install.md @@ -113,7 +113,6 @@ marathon { add(SimpleClassnameFilterConfiguration("$^".toRegex())) } } - testClassRegexes = listOf("^((?!Abstract).)*Test$") includeSerialRegexes = emptyList() excludeSerialRegexes = emptyList() uncompletedTestRetryQuota = 100 diff --git a/docs/docs/index.md b/docs/docs/index.md index 02dd6a328..545af4f71 100644 --- a/docs/docs/index.md +++ b/docs/docs/index.md @@ -40,7 +40,6 @@ vendorConfiguration: ```yaml name: "My application" outputDir: "derived-data/Marathon" -testClassRegexes: ["^((?!Abstract).)*Tests$"] vendorConfiguration: type: "iOS" bundle: diff --git a/docs/docs/intro/configure.md b/docs/docs/intro/configure.md index a9e02f5d6..6e4aa54d7 100644 --- a/docs/docs/intro/configure.md +++ b/docs/docs/intro/configure.md @@ -113,42 +113,6 @@ Refer to platform configuration for additional options inside the `vendorConfigu ## Optional -### Test class regular expression -By default, test classes are found using the ```"^((?!Abstract).)*Test[s]*$"``` regex. You can override this if you need to. - - - - -```yaml -testClassRegexes: - - "^((?!Abstract).)*Test[s]*$" -``` - - - - -```kotlin -marathon { - testClassRegexes = listOf( - "^((?!Abstract).)*Test[s]*$" - ) -} -``` - - - - -```groovy -marathon { - testClassRegexes = [ - "^((?!Abstract).)*Test[s]*\$" - ] -} -``` - - - - ### Ignore failures By default, the build fails if some tests failed. If you want to the build to succeed even if some tests failed use *true*. diff --git a/docs/docs/intro/overview.md b/docs/docs/intro/overview.md index b943a0f62..41d11ff68 100644 --- a/docs/docs/intro/overview.md +++ b/docs/docs/intro/overview.md @@ -42,7 +42,6 @@ vendorConfiguration: ```yaml name: "My application" outputDir: "derived-data/Marathon" -testClassRegexes: ["^((?!Abstract).)*Tests$"] vendorConfiguration: type: "iOS" bundle: diff --git a/docs/docs/ios/configure.md b/docs/docs/ios/configure.md index 49a812156..179cf8977 100644 --- a/docs/docs/ios/configure.md +++ b/docs/docs/ios/configure.md @@ -480,7 +480,19 @@ We don't provide source code for the libxctest-parser module. By using libxctest Default test parser is nm. - + + +```yaml +vendorConfiguration: + type: "iOS" + testParserConfiguration: + type: "nm" + testClassRegexes: + - "^((?!Abstract).)*Test[s]*$" +``` + + + ```yaml vendorConfiguration: diff --git a/marathon-gradle-plugin/src/main/kotlin/com/malinskiy/marathon/gradle/MarathonExtension.kt b/marathon-gradle-plugin/src/main/kotlin/com/malinskiy/marathon/gradle/MarathonExtension.kt index 380721bb6..6ec536a90 100644 --- a/marathon-gradle-plugin/src/main/kotlin/com/malinskiy/marathon/gradle/MarathonExtension.kt +++ b/marathon-gradle-plugin/src/main/kotlin/com/malinskiy/marathon/gradle/MarathonExtension.kt @@ -182,12 +182,6 @@ open class MarathonExtension { */ var uncompletedTestRetryQuota: Int? = null - /** - * By default, test classes are found using the ```"^((?!Abstract).)*Test[s]*$"``` regex. You can override this if you need to. - */ - var testClassRegexes: Collection? = null - - var includeSerialRegexes: Collection? = null var excludeSerialRegexes: Collection? = null diff --git a/marathon-gradle-plugin/src/main/kotlin/com/malinskiy/marathon/gradle/MarathonPlugin.kt b/marathon-gradle-plugin/src/main/kotlin/com/malinskiy/marathon/gradle/MarathonPlugin.kt index b4b682bb8..e9c3754ec 100644 --- a/marathon-gradle-plugin/src/main/kotlin/com/malinskiy/marathon/gradle/MarathonPlugin.kt +++ b/marathon-gradle-plugin/src/main/kotlin/com/malinskiy/marathon/gradle/MarathonPlugin.kt @@ -175,7 +175,6 @@ class MarathonPlugin : Plugin { config.isCodeCoverageEnabled?.let { isCodeCoverageEnabled = it } config.executionStrategy?.let { executionStrategy = it } config.uncompletedTestRetryQuota?.let { uncompletedTestRetryQuota = it } - config.testClassRegexes?.map { it.toRegex() }?.let { testClassRegexes = it } config.includeSerialRegexes?.map { it.toRegex() }?.let { includeSerialRegexes = it } config.excludeSerialRegexes?.map { it.toRegex() }?.let { excludeSerialRegexes = it } config.testBatchTimeoutMillis?.let { testBatchTimeoutMillis = it } diff --git a/sample/android-cucumber-app/Marathonfile b/sample/android-cucumber-app/Marathonfile index adfb803f1..33c570149 100644 --- a/sample/android-cucumber-app/Marathonfile +++ b/sample/android-cucumber-app/Marathonfile @@ -1,8 +1,6 @@ name: "android-cucumber-app tests" outputDir: "build/reports/marathon" isCodeCoverageEnabled: true -testClassRegexes: - - ".*" retryStrategy: type: "fixed-quota" totalAllowedRetryQuota: 100 diff --git a/sample/ios-app/Marathonfile-uiTests b/sample/ios-app/Marathonfile-uiTests index 05c03cc9c..6e3de6a41 100644 --- a/sample/ios-app/Marathonfile-uiTests +++ b/sample/ios-app/Marathonfile-uiTests @@ -1,6 +1,5 @@ name: "sample-ios-app tests" outputDir: "report/marathon-uiTests" -testClassRegexes: ["^((?!Abstract).)*Tests$"] screenRecordingPolicy: ON_ANY isCodeCoverageEnabled: true flakinessStrategy: diff --git a/sample/ios-app/Marathonfile-unitTests b/sample/ios-app/Marathonfile-unitTests index 4439be445..efea49b77 100644 --- a/sample/ios-app/Marathonfile-unitTests +++ b/sample/ios-app/Marathonfile-unitTests @@ -1,6 +1,5 @@ name: "sample-ios-app tests" outputDir: "report/marathon-unitTests" -testClassRegexes: ["^((?!Abstract).)*Tests$"] screenRecordingPolicy: ON_ANY isCodeCoverageEnabled: true flakinessStrategy: @@ -27,6 +26,8 @@ vendorConfiguration: username: malinskiy key: ${HOME}/.ssh/marathon knownHostsPath: ${HOME}/.ssh/known_hosts + testParserConfiguration: + type: nm xcresult: pull: true remoteClean: true diff --git a/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/AppleVendor.kt b/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/AppleVendor.kt index 09adf9cba..3b9a7a176 100644 --- a/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/AppleVendor.kt +++ b/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/AppleVendor.kt @@ -18,22 +18,22 @@ import com.malinskiy.marathon.log.MarathonLogConfigurator import org.koin.dsl.module val AppleVendor = module { - single { - val gson = GsonBuilder() - .registerTypeAdapter(SimctlDeviceList::class.java, SimctlDeviceListDeserializer()) - .create() - val objectMapper = ObjectMapper(YAMLFactory().disable(YAMLGenerator.Feature.USE_NATIVE_TYPE_ID)) - .registerModule( - KotlinModule.Builder() - .withReflectionCacheSize(512) - .configure(KotlinFeature.NullToEmptyCollection, false) - .configure(KotlinFeature.NullToEmptyMap, false) - .configure(KotlinFeature.NullIsSameAsDefault, false) - .configure(KotlinFeature.SingletonSupport, true) - .configure(KotlinFeature.StrictNullChecks, false) - .build() - ) - AppleDeviceProvider(get(), get(), get(), gson, objectMapper, get(), get()) + single { + val gson = GsonBuilder() + .registerTypeAdapter(SimctlDeviceList::class.java, SimctlDeviceListDeserializer()) + .create() + val objectMapper = ObjectMapper(YAMLFactory().disable(YAMLGenerator.Feature.USE_NATIVE_TYPE_ID)) + .registerModule( + KotlinModule.Builder() + .withReflectionCacheSize(512) + .configure(KotlinFeature.NullToEmptyCollection, false) + .configure(KotlinFeature.NullToEmptyMap, false) + .configure(KotlinFeature.NullIsSameAsDefault, false) + .configure(KotlinFeature.SingletonSupport, true) + .configure(KotlinFeature.StrictNullChecks, false) + .build() + ) + AppleDeviceProvider(get(), get(), get(), gson, objectMapper, get(), get()) } single { val configuration = get() @@ -46,7 +46,14 @@ val AppleVendor = module { get() ) - else -> NmTestParser(get(), get(), get()) + testParserConfiguration != null && testParserConfiguration is TestParserConfiguration.NmTestParserConfiguration -> NmTestParser( + get(), + get(), + testParserConfiguration, + get() + ) + + else -> NmTestParser(get(), get(), TestParserConfiguration.NmTestParserConfiguration(), get()) } } single { AppleLogConfigurator(get()) } diff --git a/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/NmTestParser.kt b/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/NmTestParser.kt index 7c609c1c4..acf3df18b 100644 --- a/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/NmTestParser.kt +++ b/vendor/vendor-ios/src/main/kotlin/com/malinskiy/marathon/ios/NmTestParser.kt @@ -3,6 +3,7 @@ package com.malinskiy.marathon.ios import com.malinskiy.marathon.config.Configuration import com.malinskiy.marathon.config.exceptions.ConfigurationException import com.malinskiy.marathon.config.vendor.VendorConfiguration +import com.malinskiy.marathon.config.vendor.ios.TestParserConfiguration import com.malinskiy.marathon.device.Device import com.malinskiy.marathon.exceptions.TestParsingException import com.malinskiy.marathon.execution.RemoteTestParser @@ -16,6 +17,7 @@ import java.io.File class NmTestParser( private val configuration: Configuration, private val vendorConfiguration: VendorConfiguration.IOSConfiguration, + private val parserConfiguration: TestParserConfiguration.NmTestParserConfiguration, private val testBundleIdentifier: AppleTestBundleIdentifier ) : RemoteTestParser { private val logger = MarathonLogging.logger(NmTestParser::class.java.simpleName) @@ -89,7 +91,9 @@ class NmTestParser( swiftTests.forEach { testBundleIdentifier.put(it, testBundle) } objectiveCTests.forEach { testBundleIdentifier.put(it, testBundle) } - return swiftTests + objectiveCTests + return (swiftTests + objectiveCTests).filter { test -> + parserConfiguration.testClassRegexes.all { it.matches(test.clazz) } + } } } diff --git a/vendor/vendor-ios/src/test/resources/sample-xcworkspace/Marathonfile b/vendor/vendor-ios/src/test/resources/sample-xcworkspace/Marathonfile index cc336d4bf..4727fa2fc 100644 --- a/vendor/vendor-ios/src/test/resources/sample-xcworkspace/Marathonfile +++ b/vendor/vendor-ios/src/test/resources/sample-xcworkspace/Marathonfile @@ -1,6 +1,5 @@ name: "sample-ios-app tests" outputDir: "derived-data/Marathon" -testClassRegexes: ["^((?!Abstract).)*Tests$"] poolingStrategy: - type: "omni" batchingStrategy: diff --git a/vendor/vendor-test/src/main/kotlin/com/malinskiy/marathon/test/factory/ConfigurationFactory.kt b/vendor/vendor-test/src/main/kotlin/com/malinskiy/marathon/test/factory/ConfigurationFactory.kt index 4d562dbeb..2d56dfa80 100644 --- a/vendor/vendor-test/src/main/kotlin/com/malinskiy/marathon/test/factory/ConfigurationFactory.kt +++ b/vendor/vendor-test/src/main/kotlin/com/malinskiy/marathon/test/factory/ConfigurationFactory.kt @@ -38,7 +38,6 @@ class ConfigurationFactory(val testParser: LocalTestParser, val deviceProvider: var retryStrategy: RetryStrategyConfiguration = RetryStrategyConfiguration.NoRetryStrategyConfiguration var shardingStrategy: ShardingStrategyConfiguration = ShardingStrategyConfiguration.ParallelShardingStrategyConfiguration var sortingStrategy: SortingStrategyConfiguration = SortingStrategyConfiguration.NoSortingStrategyConfiguration - var testClassRegexes = listOf(Regex("^((?!Abstract).)*Test[s]*$")) var testBatchTimeoutMillis = 180_000L var testOutputTimeoutMillis = 60_000L var analyticsTracking = false @@ -69,7 +68,6 @@ class ConfigurationFactory(val testParser: LocalTestParser, val deviceProvider: isCodeCoverageEnabled = this@ConfigurationFactory.isCodeCoverageEnabled strictMode = this@ConfigurationFactory.strictMode uncompletedTestRetryQuota = this@ConfigurationFactory.uncompletedTestRetryQuota - testClassRegexes = this@ConfigurationFactory.testClassRegexes includeSerialRegexes = this@ConfigurationFactory.includeSerialRegexes excludeSerialRegexes = this@ConfigurationFactory.excludeSerialRegexes testBatchTimeoutMillis = this@ConfigurationFactory.testBatchTimeoutMillis