From cc380695b83a87df7ee2a4630acd0ff70acf4955 Mon Sep 17 00:00:00 2001 From: Michael Comella Date: Thu, 5 Aug 2021 10:43:31 -0700 Subject: [PATCH] No issue: remove unnecessary robolectric annotations. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Theoretically, this should marginally decrease the duration of our unit test suite. In my testing, for 1 iteration each (i.e. noise is very possible), the duration changed from 9m 32s to 8m 21s – a 71s improvement. --- To identify tests that were running with robolectric that didn't need to be, I removed the @RunWith(FenixRobo... from all relevant files: sed -i '' "/@RunWith(FenixRobolectric/d" app/src/test/**/*.kt I ran the tests and discovered which ones failed from the Classes tab of the index.html test result file. Something like: tests = document.querySelectorAll('table')[3].querySelectorAll('tr'); failureElements = tests.querySelectorAll('.failures'); // TODO: extract the test names Then I copied these results to a text file and compared them to all the files that had robolectric test runners to figure out which ones still pass: comm -1 -2 failures.txt changed_files.txt > robolectric_not_needed.txt And undid the changes to the failing files: for i in $(cat robolectric_not_needed.txt); do git checkout $i; done Then I removed the import statements on those files: for i in $(cut changed_files.txt); do sed -i '' "/import.*RunWith/d" $i; done for i in $(cat changed_files.txt); do sed -i '' "/import.*RobolectricTestRunner/d" $i; done --- .../org/mozilla/fenix/addons/AddonsManagementFragmentTest.kt | 3 --- .../fenix/browser/infobanner/DynamicInfoBannerBehaviorTest.kt | 3 --- .../fenix/components/metrics/MetricsUtilsTestRoboelectric.kt | 3 --- .../components/settings/sitepermissions/ExtensionsTest.kt | 3 --- app/src/test/java/org/mozilla/fenix/ext/ListTest.kt | 3 --- app/src/test/java/org/mozilla/fenix/home/HomeFragmentTest.kt | 3 --- .../mozilla/fenix/library/downloads/DownloadControllerTest.kt | 3 --- .../fenix/settings/biometric/ext/BiometricManagerKtTest.kt | 3 --- .../java/org/mozilla/fenix/settings/creditcards/StringTest.kt | 3 --- .../fenix/settings/deletebrowsingdata/DeleteAndQuitTest.kt | 3 --- .../settings/quicksettings/QuickSettingsFragmentReducerTest.kt | 3 --- .../sitepermissions/SitePermissionsWifiIntegrationTest.kt | 3 --- .../mozilla/fenix/tabstray/DefaultTabsTrayControllerTest.kt | 3 --- .../java/org/mozilla/fenix/tabstray/TabLayoutMediatorTest.kt | 3 --- 14 files changed, 42 deletions(-) diff --git a/app/src/test/java/org/mozilla/fenix/addons/AddonsManagementFragmentTest.kt b/app/src/test/java/org/mozilla/fenix/addons/AddonsManagementFragmentTest.kt index 3b327fcb70..34eec3ae5e 100644 --- a/app/src/test/java/org/mozilla/fenix/addons/AddonsManagementFragmentTest.kt +++ b/app/src/test/java/org/mozilla/fenix/addons/AddonsManagementFragmentTest.kt @@ -13,11 +13,8 @@ import io.mockk.verify import mozilla.components.feature.addons.Addon import org.junit.Before import org.junit.Test -import org.junit.runner.RunWith import org.mozilla.fenix.R -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner -@RunWith(FenixRobolectricTestRunner::class) class AddonsManagementFragmentTest { private lateinit var context: Context diff --git a/app/src/test/java/org/mozilla/fenix/browser/infobanner/DynamicInfoBannerBehaviorTest.kt b/app/src/test/java/org/mozilla/fenix/browser/infobanner/DynamicInfoBannerBehaviorTest.kt index 69fd5d8ca4..bb2859502d 100644 --- a/app/src/test/java/org/mozilla/fenix/browser/infobanner/DynamicInfoBannerBehaviorTest.kt +++ b/app/src/test/java/org/mozilla/fenix/browser/infobanner/DynamicInfoBannerBehaviorTest.kt @@ -12,10 +12,7 @@ import io.mockk.verify import mozilla.components.browser.toolbar.BrowserToolbar import org.junit.Assert.assertEquals import org.junit.Test -import org.junit.runner.RunWith -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner -@RunWith(FenixRobolectricTestRunner::class) class DynamicInfoBannerBehaviorTest { @Test fun `layoutDependsOn should not do anything if not for BrowserToolbar as a dependency`() { diff --git a/app/src/test/java/org/mozilla/fenix/components/metrics/MetricsUtilsTestRoboelectric.kt b/app/src/test/java/org/mozilla/fenix/components/metrics/MetricsUtilsTestRoboelectric.kt index 2f867021a6..c6b88c22f4 100644 --- a/app/src/test/java/org/mozilla/fenix/components/metrics/MetricsUtilsTestRoboelectric.kt +++ b/app/src/test/java/org/mozilla/fenix/components/metrics/MetricsUtilsTestRoboelectric.kt @@ -10,14 +10,11 @@ import mozilla.components.browser.state.search.SearchEngine import mozilla.components.browser.state.store.BrowserStore import org.junit.Assert import org.junit.Test -import org.junit.runner.RunWith -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner /** * Just the Roboelectric tests for MetricsUtil. Splitting these files out means our other tests will run more quickly. * FenixRobolectricTestRunner also breaks our ability to use mockkStatic on Base64. */ -@RunWith(FenixRobolectricTestRunner::class) class MetricsUtilsTestRoboelectric { @Test diff --git a/app/src/test/java/org/mozilla/fenix/components/settings/sitepermissions/ExtensionsTest.kt b/app/src/test/java/org/mozilla/fenix/components/settings/sitepermissions/ExtensionsTest.kt index 57bfad949f..901b1c38ae 100644 --- a/app/src/test/java/org/mozilla/fenix/components/settings/sitepermissions/ExtensionsTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/settings/sitepermissions/ExtensionsTest.kt @@ -12,12 +12,9 @@ import mozilla.components.browser.state.state.createTab import mozilla.components.browser.state.store.BrowserStore import mozilla.components.support.ktx.kotlin.getOrigin import org.junit.Test -import org.junit.runner.RunWith import org.mozilla.fenix.components.Components -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner import org.mozilla.fenix.settings.sitepermissions.tryReloadTabBy -@RunWith(FenixRobolectricTestRunner::class) class ExtensionsTest { @Test diff --git a/app/src/test/java/org/mozilla/fenix/ext/ListTest.kt b/app/src/test/java/org/mozilla/fenix/ext/ListTest.kt index 2b0a7dbbd8..25770f5b9c 100644 --- a/app/src/test/java/org/mozilla/fenix/ext/ListTest.kt +++ b/app/src/test/java/org/mozilla/fenix/ext/ListTest.kt @@ -7,12 +7,9 @@ package org.mozilla.fenix.ext import mozilla.components.browser.state.state.content.DownloadState import org.junit.Assert.assertEquals import org.junit.Test -import org.junit.runner.RunWith -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner import org.mozilla.fenix.library.downloads.DownloadItem import java.io.File -@RunWith(FenixRobolectricTestRunner::class) class ListTest { @Test diff --git a/app/src/test/java/org/mozilla/fenix/home/HomeFragmentTest.kt b/app/src/test/java/org/mozilla/fenix/home/HomeFragmentTest.kt index b201fd2e5c..bca3e73528 100644 --- a/app/src/test/java/org/mozilla/fenix/home/HomeFragmentTest.kt +++ b/app/src/test/java/org/mozilla/fenix/home/HomeFragmentTest.kt @@ -14,13 +14,10 @@ import mozilla.components.browser.menu.view.MenuButton import org.junit.Assert import org.junit.Before import org.junit.Test -import org.junit.runner.RunWith import org.mozilla.fenix.ext.settings -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner import org.mozilla.fenix.utils.Settings @ExperimentalCoroutinesApi -@RunWith(FenixRobolectricTestRunner::class) class HomeFragmentTest { private lateinit var settings: Settings diff --git a/app/src/test/java/org/mozilla/fenix/library/downloads/DownloadControllerTest.kt b/app/src/test/java/org/mozilla/fenix/library/downloads/DownloadControllerTest.kt index 13c447450b..14a26afa0e 100644 --- a/app/src/test/java/org/mozilla/fenix/library/downloads/DownloadControllerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/library/downloads/DownloadControllerTest.kt @@ -16,12 +16,9 @@ import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Before import org.junit.Test -import org.junit.runner.RunWith import org.mozilla.fenix.browser.browsingmode.BrowsingMode -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner @ExperimentalCoroutinesApi -@RunWith(FenixRobolectricTestRunner::class) class DownloadControllerTest { private val downloadItem = DownloadItem( id = "0", diff --git a/app/src/test/java/org/mozilla/fenix/settings/biometric/ext/BiometricManagerKtTest.kt b/app/src/test/java/org/mozilla/fenix/settings/biometric/ext/BiometricManagerKtTest.kt index dd66dbc716..df8c69c2d1 100644 --- a/app/src/test/java/org/mozilla/fenix/settings/biometric/ext/BiometricManagerKtTest.kt +++ b/app/src/test/java/org/mozilla/fenix/settings/biometric/ext/BiometricManagerKtTest.kt @@ -14,10 +14,7 @@ import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Before import org.junit.Test -import org.junit.runner.RunWith -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner -@RunWith(FenixRobolectricTestRunner::class) class BiometricManagerKtTest { lateinit var manager: BiometricManager diff --git a/app/src/test/java/org/mozilla/fenix/settings/creditcards/StringTest.kt b/app/src/test/java/org/mozilla/fenix/settings/creditcards/StringTest.kt index e8f2b82898..3a0a4a114d 100644 --- a/app/src/test/java/org/mozilla/fenix/settings/creditcards/StringTest.kt +++ b/app/src/test/java/org/mozilla/fenix/settings/creditcards/StringTest.kt @@ -8,10 +8,7 @@ import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Test -import org.junit.runner.RunWith -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner -@RunWith(FenixRobolectricTestRunner::class) class StringTest { @Test diff --git a/app/src/test/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteAndQuitTest.kt b/app/src/test/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteAndQuitTest.kt index 25370de6a1..3492669beb 100644 --- a/app/src/test/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteAndQuitTest.kt +++ b/app/src/test/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteAndQuitTest.kt @@ -23,16 +23,13 @@ import org.junit.Before import org.junit.Ignore import org.junit.Rule import org.junit.Test -import org.junit.runner.RunWith import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.components.PermissionStorage import org.mozilla.fenix.ext.components -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner import org.mozilla.fenix.utils.Settings @OptIn(ExperimentalCoroutinesApi::class) -@RunWith(FenixRobolectricTestRunner::class) class DeleteAndQuitTest { val testDispatcher = TestCoroutineDispatcher() diff --git a/app/src/test/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsFragmentReducerTest.kt b/app/src/test/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsFragmentReducerTest.kt index 8acfc08e85..95963693fc 100644 --- a/app/src/test/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsFragmentReducerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsFragmentReducerTest.kt @@ -8,11 +8,8 @@ import mozilla.components.support.test.mock import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue import org.junit.Test -import org.junit.runner.RunWith -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner import org.mozilla.fenix.settings.PhoneFeature -@RunWith(FenixRobolectricTestRunner::class) class QuickSettingsFragmentReducerTest { @Test diff --git a/app/src/test/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsWifiIntegrationTest.kt b/app/src/test/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsWifiIntegrationTest.kt index 61e9c7484a..f19ad72cd3 100644 --- a/app/src/test/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsWifiIntegrationTest.kt +++ b/app/src/test/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsWifiIntegrationTest.kt @@ -11,15 +11,12 @@ import mozilla.components.feature.sitepermissions.SitePermissionsRules.Action.AL import mozilla.components.feature.sitepermissions.SitePermissionsRules.Action.BLOCKED import org.junit.Before import org.junit.Test -import org.junit.runner.RunWith -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner import org.mozilla.fenix.settings.PhoneFeature.AUTOPLAY_AUDIBLE import org.mozilla.fenix.settings.PhoneFeature.AUTOPLAY_INAUDIBLE import org.mozilla.fenix.utils.Settings import org.mozilla.fenix.wifi.SitePermissionsWifiIntegration import org.mozilla.fenix.wifi.WifiConnectionMonitor -@RunWith(FenixRobolectricTestRunner::class) class SitePermissionsWifiIntegrationTest { lateinit var settings: Settings lateinit var wifiIntegration: SitePermissionsWifiIntegration diff --git a/app/src/test/java/org/mozilla/fenix/tabstray/DefaultTabsTrayControllerTest.kt b/app/src/test/java/org/mozilla/fenix/tabstray/DefaultTabsTrayControllerTest.kt index 354981f1a3..f67f302135 100644 --- a/app/src/test/java/org/mozilla/fenix/tabstray/DefaultTabsTrayControllerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/tabstray/DefaultTabsTrayControllerTest.kt @@ -29,15 +29,12 @@ import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Before import org.junit.Test -import org.junit.runner.RunWith import org.mozilla.fenix.R import org.mozilla.fenix.browser.browsingmode.BrowsingModeManager import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.MetricController -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner import org.mozilla.fenix.home.HomeFragment -@RunWith(FenixRobolectricTestRunner::class) class DefaultTabsTrayControllerTest { @MockK(relaxed = true) private lateinit var trayStore: TabsTrayStore diff --git a/app/src/test/java/org/mozilla/fenix/tabstray/TabLayoutMediatorTest.kt b/app/src/test/java/org/mozilla/fenix/tabstray/TabLayoutMediatorTest.kt index 616c293025..e3c57249e9 100644 --- a/app/src/test/java/org/mozilla/fenix/tabstray/TabLayoutMediatorTest.kt +++ b/app/src/test/java/org/mozilla/fenix/tabstray/TabLayoutMediatorTest.kt @@ -9,16 +9,13 @@ import io.mockk.every import io.mockk.mockk import io.mockk.verify import org.junit.Test -import org.junit.runner.RunWith import org.mozilla.fenix.browser.browsingmode.BrowsingMode import org.mozilla.fenix.browser.browsingmode.BrowsingModeManager import org.mozilla.fenix.components.metrics.MetricController -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner import org.mozilla.fenix.tabstray.TrayPagerAdapter.Companion.POSITION_NORMAL_TABS import org.mozilla.fenix.tabstray.TrayPagerAdapter.Companion.POSITION_PRIVATE_TABS import org.mozilla.fenix.tabstray.TrayPagerAdapter.Companion.POSITION_SYNCED_TABS -@RunWith(FenixRobolectricTestRunner::class) class TabLayoutMediatorTest { private val modeManager: BrowsingModeManager = mockk(relaxed = true) private val tabsTrayStore: TabsTrayStore = mockk(relaxed = true)