Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

guide the user towards solving test-plan issues #7834

Merged
merged 2 commits into from
Nov 29, 2021
Merged
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
11 changes: 7 additions & 4 deletions cabal-install/src/Distribution/Client/CmdErrorMessages.hs
Original file line number Diff line number Diff line change
Expand Up @@ -330,10 +330,13 @@ renderTargetProblemNoneEnabled verb targetSelector targets =
[ "the " ++ showComponentName availableTargetComponentName
| AvailableTarget {availableTargetComponentName} <- targets' ]
++ plural (listPlural targets') " is " " are "
++ "not available because the solver did not find a plan that "
++ "included the " ++ renderOptionalStanza Plural stanza
++ ". Force the solver to enable this for all packages by adding the "
++ "line 'tests: True' to the 'cabal.project.local' file."
++ "not available because the solver picked a plan that does not "
++ "include the " ++ renderOptionalStanza Plural stanza
++ ", perhaps because no such plan exists. To see the error message "
++ "explaining the problems with such plans, force the solver to "
++ "include the " ++ renderOptionalStanza Plural stanza ++ " for all "
++ "packages, by adding the line 'tests: True' to the "
++ "'cabal.project.local' file."
(TargetNotBuildable, _) ->
renderListCommaAnd
[ "the " ++ showComponentName availableTargetComponentName
Expand Down
12 changes: 12 additions & 0 deletions changelog.d/pr-7834
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
synopsis: Improve error message when no test/benchmark is found
packages: cabal-install
prs: #7834
issues: #5079 #5255

description: {

When `cabal test` and the error message recommends setting `tests: True`, the next `cabal test` run is likely to fail with a solver error. The user might incorrectly conclude that setting `tests: True` made the problem worse, because the failure now occurs earlier (at solving time rather than at testing time).

By including the fact that a plan failure is expected in the error message, hopefully users will be more confident that setting `tests: True` was the right move, so they will be able to focus on the true cause of the problem: the fact that no plan including the tests exists.

}