Interface TestsManager

  • All Known Implementing Classes:
    TestsManagerImpl

    public interface TestsManager
    Manager for manipulating all things test related
    • Method Detail

      • saveTestClass

        void saveTestClass​(TestClass testClass)
        Save a TestClass (and included TestCases) to the database
        Parameters:
        testClass - to save
      • saveTestCase

        void saveTestCase​(TestCase testCase)
        Save an individual TestCase to the database
        Parameters:
        testCase - to save
      • copyTestResultsToBuildResultsSummary

        void copyTestResultsToBuildResultsSummary​(@NotNull
                                                  @NotNull BuildResultsSummary summary,
                                                  @NotNull
                                                  @NotNull BuildResults buildResults,
                                                  @NotNull
                                                  @NotNull BuildContext buildContext)
        Converts the test results sent back from the agent to a list of TestClassResults and attaches them to the BRS. Also updates (but does not save) testResultsSummary information in the BRS. This method does not save the test results, or the summary, but does save TestClass and TestCase objects to the database as required.
        Parameters:
        summary - for the interesting tests to be attached to.
        buildResults - for the boring tests to be attached to
        buildContext - for the build that has the tests we want to move
      • repopulateTestResultsInBuildResultsSummary

        @Deprecated
        void repopulateTestResultsInBuildResultsSummary​(@NotNull
                                                        @NotNull BuildResultsSummary summary,
                                                        @NotNull
                                                        @NotNull List<TestResults> successfulTests)
        Deprecated.
        since 8.2 use #repopulateTestResultsInBuildResultsSummary(BuildResultsSummary, Supplier>)
      • repopulateTestResultsInBuildResultsSummary

        void repopulateTestResultsInBuildResultsSummary​(@NotNull
                                                        @NotNull BuildResultsSummary summary,
                                                        @NotNull
                                                        @NotNull Supplier<List<TestResults>> buildResultsSupplier)
      • getTestsForBuildResultByState

        @NotNull
        @NotNull List<TestCaseResult> getTestsForBuildResultByState​(BuildResultsSummary summary,
                                                                    TestState state)
        Retrieves a list of testCaseResults for a BuildResultSummary based on their state (e.f FAILED or SUCCESS)
        Parameters:
        summary - the BuildResultsSummary to get the tests for
        state - - The TestState to search for.
        Returns:
        a list of testCaseResults for a BuildResultSummary with the given state
      • getTestsForBuildResultByState

        @NotNull
        @NotNull List<TestCaseResult> getTestsForBuildResultByState​(BuildResultsSummary summary,
                                                                    TestState state,
                                                                    int firstResult,
                                                                    int maxCount)
        Retrieves a list of testCaseResults for a BuildResultSummary based on their state (e.f FAILED or SUCCESS). To be used whenever pagination is required.
        Parameters:
        summary - the BuildResultsSummary to get the tests for
        state - - The TestState to search for.
        firstResult - - index of the first result
        maxCount - - maximum amount of records returned
        Returns:
        a list of testCaseResults for a BuildResultSummary with the given state
      • getTestsForBuildResultByDeltaState

        @NotNull
        @NotNull List<TestCaseResult> getTestsForBuildResultByDeltaState​(BuildResultsSummary summary,
                                                                         TestDeltaState deltaState,
                                                                         int firstResult,
                                                                         int maxCount)
        Retrieves a list of testCaseResults for a BuildResultSummary based on their delta state (e.g BROKEN, FIXED)
        Parameters:
        summary - the BuildResultsSummary to get the tests for
        deltaState - - The TestDeltaState to search for.
        firstResult - - index of the first result
        maxCount - - maximum amount of records returned
        Returns:
        a list of testCaseResults for a BuildResultSummary with the given delta state
      • getTestsForChainResultByDeltaState

        List<TestCaseResult> getTestsForChainResultByDeltaState​(ChainResultsSummary summary,
                                                                TestDeltaState deltaState,
                                                                int firstResult,
                                                                int maxCount)
        Retrieves a list of testCaseResults for a ChainResultSummary based on their delta state (e.g BROKEN, FIXED)
        Parameters:
        summary -
        deltaState -
        firstResult - - index of the first result
        maxCount - - maximum amount of records returned
        Returns:
        testCaseResults
      • getTestsForChainResultByDeltaStates

        @NotNull
        @NotNull List<TestCaseResult> getTestsForChainResultByDeltaStates​(@NotNull
                                                                          @NotNull ChainResultsSummary summary,
                                                                          @NotNull
                                                                          @NotNull TestDeltaState[] deltaStates,
                                                                          int firstResult,
                                                                          int maxCount)
        Retrieves a list of testCaseResults for a ChainResultSummary based on their delta state (e.g BROKEN, FIXED)
        Parameters:
        summary -
        deltaStates -
        firstResult - - index of the first result
        maxCount - - maximum amount of records returned
        Returns:
        testCaseResults
      • getTestsForChainResultByState

        @NotNull
        @NotNull List<TestCaseResult> getTestsForChainResultByState​(@NotNull
                                                                    @NotNull ChainResultsSummary summary,
                                                                    @NotNull
                                                                    @NotNull TestState testState,
                                                                    int firstResult,
                                                                    int maxCount)
        Retrieves a list of testCaseResults for a ChainResultSummary based on their TestState
        Parameters:
        summary -
        testState -
        firstResult -
        maxCount -
        Returns:
        testCaseResults
      • getTestOrderedMap

        @NotNull
        @NotNull com.google.common.collect.TreeMultimap<TestClassResult,​TestCaseResult> getTestOrderedMap​(@NotNull
                                                                                                                @NotNull List<TestCaseResult> tests)
        Generate a ListOrderedMap of TestClassResult to list of TestCaseResult based on a given list of TestCaseResults.
        Parameters:
        tests - to put in the map
        Returns:
        a ListOrderedMap of TestClassResult to list of TestCaseResult
      • getTestCaseResultById

        @Nullable
        @Nullable TestCaseResult getTestCaseResultById​(long testCaseResultId)
        Find a specific testCaseResult by id
        Parameters:
        testCaseResultId - of the test you want to find
        Returns:
        the testCaseResult corresponding to the id provided.
      • getTestClassResultById

        @Nullable
        @Nullable TestClassResult getTestClassResultById​(long testClassResultId)
        Find a specific testClassResult by id
        Parameters:
        testClassResultId - of the test you want to find
        Returns:
        the testClassResult corresponding to the id provided.
      • getTestCaseById

        @Nullable
        @Nullable TestCase getTestCaseById​(long testCaseId)
        Find a specific testCase by id
        Parameters:
        testCaseId - of the test case you want to find
        Returns:
        the testCase corresponding to the id provided.
      • getTestClassById

        @Nullable
        @Nullable TestClass getTestClassById​(long testClassId)
        Find a specific testClass by id
        Parameters:
        testClassId - of the test class you want to find
        Returns:
        the testClass corresponding to the id provided.
      • getResultStatistics

        @NotNull
        @NotNull List<TestCaseResultStatisticsProvider> getResultStatistics​(@NotNull
                                                                            @NotNull TestCase testCase)
        Returns a list of wrapped TestCaseResult and BuildResultSummary for a particular test case, for use by e.g. graphs
        Parameters:
        testCase - to find the results for
        Returns:
        list of TestCaseResultStatisticsProvider for each TestCaseResult found for the TestCase
      • getResultStatistics

        @NotNull
        @NotNull List<TestCaseResultStatisticsProvider> getResultStatistics​(@NotNull
                                                                            @NotNull TestCase testCase,
                                                                            @NotNull
                                                                            @NotNull List<BuildResultsSummary> buildResults)
        Returns a list of wrapped TestCaseResult and BuildResultSummary for a particular test case and contained within a specific span of build result summaries. For use by e.g. graphs
        Parameters:
        testCase - to find the results for
        buildResults - to contain search to (this list must not be empty)
        Returns:
        list of TestCaseResultStatisticsProvider for each TestCaseResult found for the TestCase
      • getLongestRunningTestCases

        @NotNull
        @NotNull List<TestCase> getLongestRunningTestCases​(@NotNull
                                                           @NotNull ImmutablePlan plan)
        Provide a list of the top ten longest running tests for a plan, based on the duration of the TestCase's TestCaseResults Finds top 10 results in order (longest first)
        Parameters:
        plan - to search in for the tests.
        Returns:
        List of TestCases
      • getMostFailingTestCases

        @NotNull
        @NotNull List<Pair<TestCase,​Long>> getMostFailingTestCases​(@NotNull
                                                                         @NotNull ImmutablePlan plan)
        Provide a list of the top 10 most failing test cases for a plan. It is calculated based on failure count, not percentage. Results are ordered from most failing to least failing.
        Parameters:
        plan - to search for the tests
        Returns:
        List of Pairs containing the testCase and the number of failures found (int)
      • getMostFailingTestCases

        @NotNull
        @NotNull List<Pair<TestCase,​Long>> getMostFailingTestCases​(@NotNull
                                                                         @NotNull List<BuildResultsSummary> buildResults)
        Provide a list of the top 10 most failing test cases for a plan. It is calculated based on failure count, not percentage Results are ordered from most failing to least failing.
        Parameters:
        buildResults - to search in for the tests.
        Returns:
        List of Pairs containing the testCase and the number of failures found (int)
      • getLongestToFixTestCases

        @NotNull
        @NotNull List<Pair<TestCase,​Float>> getLongestToFixTestCases​(@NotNull
                                                                           @NotNull ImmutablePlan plan)
        Retrieve a list of the test cases that have taken the longest amount of time to fix. Returns top 10 with the longest to fix first.
        Parameters:
        plan - to search for results in
        Returns:
        List of Pairs containing the testCase and the average number of builds between breakages and its corresponding fix (float)
      • getTopBrokenTests

        List<Pair<TestCase,​Long>> getTopBrokenTests​(@NotNull
                                                          @NotNull PlanKey planKey,
                                                          BuildResultsFilter filter)
        Returns a pai of the top 10 tests that's broken + the count for a given filter period
        Parameters:
        planKey -
        filter -
        Returns:
      • getLongestToFixTestCases

        @NotNull
        @NotNull List<Pair<TestCase,​Float>> getLongestToFixTestCases​(@NotNull
                                                                           @NotNull List<BuildResultsSummary> buildResults)
        Retrieve a list of the test cases that have taken the longest amount of time to fix. Returns top 10 with the longest to fix first.
        Parameters:
        buildResults - to search in for the tests.
        Returns:
        List of Pairs containing the testCase and the average number of builds between breakages and its corresponding fix (float)
      • getLastNFailingResults

        @NotNull
        @NotNull List<Pair<TestCaseResult,​Integer>> getLastNFailingResults​(@NotNull
                                                                                 @NotNull TestCase testCase,
                                                                                 int number)
        Retrieve the last n failing testResults for this given test case, latest first.
        Parameters:
        testCase - to look for the results for.
        number - of results to retrieve
        Returns:
        List of pairs containing the offending TestCaseResult and the build number it occurred in.
      • getLastNFailingResults

        @NotNull
        @NotNull List<Pair<TestCaseResult,​Integer>> getLastNFailingResults​(@NotNull
                                                                                 @NotNull TestCase testCase,
                                                                                 @NotNull
                                                                                 @NotNull List<BuildResultsSummary> buildResults,
                                                                                 int number)
        Retrieve the last n failing testResults for this given test case, but only those that occurred within the provided build results. Latest first.
        Parameters:
        testCase - to look for the results for.
        buildResults - to search in for the tests.
        number - of results to retrieve
        Returns:
        List of pairs containing the offending TestCaseResult and the build number it occurred in.
      • getTestCaseResults

        @NotNull
        @NotNull List<TestCaseResult> getTestCaseResults​(TestCase testCase,
                                                         long buildNumber)
        Find a specific run of a testCase
        Parameters:
        testCase - to look for
        buildNumber - of the build the run should have occurred in
        Returns:
        the TestCaseResult for the given test case, if it ran in the given build.
      • getSucceedingSinceBuildResultSummary

        @Nullable
        @Nullable BuildResultsSummary getSucceedingSinceBuildResultSummary​(TestCase testCase)
        Find the build in which the given test has been successful since. AKA the last recored "FIXED" test run.
        Parameters:
        testCase - to search history for.
        Returns:
        the BuildResultSummary that this test has been successful since.
      • removeResultsByPlan

        @Deprecated
        int removeResultsByPlan​(@NotNull
                                @NotNull Plan plan)
        Deprecated.
        since 6.5
        Remove all TestClassResult objects referenced by ResultsSummary objects identified by planKey
        Parameters:
        plan - plan
        Returns:
        number of removed objects
      • removeResultsByPlan

        int removeResultsByPlan​(PlanKey planKey)
        Remove all TestClassResult objects referenced by ResultsSummary objects identified by planKey
        Parameters:
        planKey - planKey
        Returns:
        number of removed objects
      • getTestClassResults

        @NotNull
        @NotNull List<TestClassResult> getTestClassResults​(@NotNull
                                                           @NotNull PlanResultKey planResultKey)
        Retrieves a list of all testClassResults for a BuildResultSummary
        Parameters:
        planResultKey - key of the BuildResultsSummary to get the tests class results for
        Returns:
        a list of all testClassResults for the BuildResultSummary