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

Disable coloured output in midje.emission.plugins.junit #376

Merged
merged 1 commit into from May 7, 2017
Merged

Disable coloured output in midje.emission.plugins.junit #376

merged 1 commit into from May 7, 2017

Conversation

ghost
Copy link

@ghost ghost commented Nov 25, 2016

Fixes: #368

@ghost
Copy link
Author

ghost commented Nov 25, 2016

Can I somehow inject a local copy of Midje into lein-midje to properly test this in its natural environment?

@marick
Copy link
Owner

marick commented Nov 26, 2016

I do this by using lein midje in my clone of the Midje source.

Wouldn't it work to have a test project that used lein midje and, via checkout dependencies include a local copy of Midje?

@ghost
Copy link
Author

ghost commented Nov 28, 2016

Thanks for the hint about checkouts. I adjusted the version number in Midje/project.clj to 1.9.0-alpha6.1, ran lein install and then adjusted :dependencies in my own project to use that version.

However, when I try to run lein midje on my project, it fails after about 20s:

# lein midje
Subprocess failed

With debug output:

# env DEBUG=y lein midje
Leiningen's classpath: $HOME/.lein/self-installs/leiningen-2.6.1-standalone.jar
Applying task midje to []
Applying task garden to (once)
clojure.lang.ExceptionInfo: Subprocess failed
 at clojure.core$ex_info.invokeStatic (core.clj:4617)
    clojure.core$ex_info.invoke (core.clj:4617)
    leiningen.core.eval$fn__5625.invokeStatic (eval.clj:271)
    leiningen.core.eval/fn (eval.clj:267)
    clojure.lang.MultiFn.invoke (MultiFn.java:233)
    leiningen.core.eval$eval_in_project.invokeStatic (eval.clj:373)
    leiningen.core.eval$eval_in_project.invoke (eval.clj:363)
    leiningen.midje$midje.invokeStatic (midje.clj:178)
    leiningen.midje$midje.doInvoke (midje.clj:96)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.Var.invoke (Var.java:379)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.core$apply.invokeStatic (core.clj:648)
    clojure.core$apply.invoke (core.clj:641)
    leiningen.core.main$partial_task$fn__5829.doInvoke (main.clj:272)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.RestFn.applyTo (RestFn.java:132)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:29)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:648)
    clojure.core$apply.invoke (core.clj:641)
    leiningen.core.main$apply_task.invokeStatic (main.clj:322)
    leiningen.core.main$apply_task.invoke (main.clj:308)
    leiningen.core.main$resolve_and_apply.invokeStatic (main.clj:328)
    leiningen.core.main$resolve_and_apply.invoke (main.clj:324)
    leiningen.core.main$_main$fn__5895.invoke (main.clj:401)
    leiningen.core.main$_main.invokeStatic (main.clj:394)
    leiningen.core.main$_main.doInvoke (main.clj:391)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    clojure.lang.Var.invoke (Var.java:379)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.core$apply.invokeStatic (core.clj:646)
    clojure.main$main_opt.invokeStatic (main.clj:314)
    clojure.main$main_opt.invoke (main.clj:310)
    clojure.main$main.invokeStatic (main.clj:421)
    clojure.main$main.doInvoke (main.clj:384)
    clojure.lang.RestFn.invoke (RestFn.java:436)
    clojure.lang.Var.invoke (Var.java:388)
    clojure.lang.AFn.applyToHelper (AFn.java:160)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.main.main (main.java:37)

The same issue also appears with vanilla 1.9.0-alpha6, without my modifications.

How do I debug this problem further?

@ghost
Copy link
Author

ghost commented Nov 28, 2016

P.S. The problem is not related to lein-garden: I removed the :prep-task and ran the same command again, resulting in a similar output:

# env DEBUG=y lein midje
Leiningen's classpath: $HOME.lein/self-installs/leiningen-2.6.1-standalone.jar
Applying task midje to []
Applying task javac to nil
Running javac with [@/tmp/.leiningen-cmdline9047366090041766111.tmp]
Applying task compile to nil
All namespaces already AOT compiled.
Compiling ClojureScript...
WARNING: no :cljsbuild entry found in project definition.
--------------------------------------------------------------------------------
WARNING: your :cljsbuild configuration is in a deprecated format.  It has been
automatically converted it to the new format, which will be printed below.
It is recommended that you update your :cljsbuild configuration ASAP.
--------------------------------------------------------------------------------
:cljsbuild
{:builds []}
--------------------------------------------------------------------------------
See https://github.com/emezeske/lein-cljsbuild/blob/master/README.md
for details on the new format.
--------------------------------------------------------------------------------
clojure.lang.ExceptionInfo: Subprocess failed
 at clojure.core$ex_info.invokeStatic (core.clj:4617)
    clojure.core$ex_info.invoke (core.clj:4617)
    leiningen.core.eval$fn__5625.invokeStatic (eval.clj:271)
    leiningen.core.eval/fn (eval.clj:267)
    clojure.lang.MultiFn.invoke (MultiFn.java:233)
    leiningen.core.eval$eval_in_project.invokeStatic (eval.clj:373)
    leiningen.core.eval$eval_in_project.invoke (eval.clj:363)
    leiningen.midje$midje.invokeStatic (midje.clj:178)
    leiningen.midje$midje.doInvoke (midje.clj:96)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.Var.invoke (Var.java:379)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.core$apply.invokeStatic (core.clj:648)
    clojure.core$apply.invoke (core.clj:641)
    leiningen.core.main$partial_task$fn__5829.doInvoke (main.clj:272)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.RestFn.applyTo (RestFn.java:132)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:29)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:648)
    clojure.core$apply.invoke (core.clj:641)
    leiningen.core.main$apply_task.invokeStatic (main.clj:322)
    leiningen.core.main$apply_task.invoke (main.clj:308)
    leiningen.core.main$resolve_and_apply.invokeStatic (main.clj:328)
    leiningen.core.main$resolve_and_apply.invoke (main.clj:324)
    leiningen.core.main$_main$fn__5895.invoke (main.clj:401)
    leiningen.core.main$_main.invokeStatic (main.clj:394)
    leiningen.core.main$_main.doInvoke (main.clj:391)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    clojure.lang.Var.invoke (Var.java:379)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.core$apply.invokeStatic (core.clj:646)
    clojure.main$main_opt.invokeStatic (main.clj:314)
    clojure.main$main_opt.invoke (main.clj:310)
    clojure.main$main.invokeStatic (main.clj:421)
    clojure.main$main.doInvoke (main.clj:384)
    clojure.lang.RestFn.invoke (RestFn.java:436)
    clojure.lang.Var.invoke (Var.java:388)
    clojure.lang.AFn.applyToHelper (AFn.java:160)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.main.main (main.java:37)

The cljsbuild warning is caused by emezeske/lein-cljsbuild#413 and not related.

@pershyn
Copy link

pershyn commented Feb 3, 2017

Reproduced this and found that in case when all checks succeeded, the problem is not there.
In such case, setting the :colorize option to true or false has no effect on file content.

When there are failed tests, having :colorize being set to true makes a difference.

In case when :colorize is false (in config), the produced surefire xml report is ok.
If the :colorize is true, then the xml is corrupt, as desribed above in comments.

<failure type=':actual-result-did-not-match-expected-value'>
<![CDATA[
^[31mFAIL^[0m "about my-test-function - Works as expected for ...
...

I then applied the patch, proposed in #376 and it fixed the issue.
Even if :colorize is then set in ./midje.conf.clj to true, it doesn't have any effect anymore.

In my opinion the problem with failed subprocess is unrelated to this change.
I would be happy to see it merged.

Thanks for the awesome library, @marick .
Thanks for the fix, @urzds .

@rafaeldff rafaeldff merged commit 975cca1 into marick:master May 7, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants