cabal-install-3.8.1.0: The command-line interface for Cabal and Hackage.
Safe HaskellNone
LanguageHaskell2010

Distribution.Client.CmdTest

Description

cabal-install CLI command: test

Synopsis

The test CLI and action

testAction :: NixStyleFlags () -> [String] -> GlobalFlags -> IO () Source #

The test command is very much like build. It brings the install plan up to date, selects that part of the plan needed by the given or implicit test target(s) and then executes the plan.

Compared to build the difference is that there's also test targets which are ephemeral.

For more details on how this works, see the module Distribution.Client.ProjectOrchestration

Internals exposed for testing

selectPackageTargets :: TargetSelector -> [AvailableTarget k] -> Either TestTargetProblem [k] Source #

This defines what a TargetSelector means for the test command. It selects the AvailableTargets that the TargetSelector refers to, or otherwise classifies the problem.

For the test command we select all buildable test-suites, or fail if there are no test-suites or no buildable test-suites.

selectComponentTarget :: SubComponentTarget -> AvailableTarget k -> Either TestTargetProblem k Source #

For a TargetComponent TargetSelector, check if the component can be selected.

For the test command we just need to check it is a test-suite, in addition to the basic checks on being buildable etc.