crisptrutski / boot-cljs-test Goto Github PK
View Code? Open in Web Editor NEWBoot task to run ClojureScript tests.
Boot task to run ClojureScript tests.
Hi again, I have another problem, using phantomjs:
With the same setup that in #58 but without :js-env
option, I get
Here's the output:
;; ======================================================================
;; Testing with Phantom:
Testing frontend.storage-test
Testing budb.cljs.firebase-store-test
DEBUG [frontend.firebase.core:36] - Loading Firebase with {:apiKey "...", :authDomain "....", :databaseURL "....", :storageBucket "...", :messagingSenderId "..."}
Error: No protocol method IDeref.-deref defined for type null:
phantomjs://code/phantom8974099379113651456.js:81 in onError
Compiling ClojureScript...
• cljs_test/generated_test_suite.js
WARNING: boolean? already refers to: #'clojure.core/boolean? in namespace: clojure.tools.analyzer.utils, being replaced by: #'clojure.tools.analyzer.utils/boolean?
WARNING: boolean? already refers to: #'clojure.core/boolean? in namespace: clojure.tools.analyzer, being replaced by: #'clojure.tools.analyzer.utils/boolean?
WARNING: -dissoc already refers to: cljs.core/-dissoc being replaced by: konserve.protocols/-dissoc at line 3 /Users/laurent/.boot/cache/tmp/Users/laurent/dev/proj/proj-frontend/re3/-lhed9a/cljs_test/generated_test_suite.out/konserve/protocols.cljc
Compiling {sass}... 17 changed files.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Elapsed time: 92.873 sec
I rely a lot on core.async and async tests, could this be an issue?
Thanks again for taking a look,
This is probably related to #31, but I'm not certain if it's specific to having external Node modules or just running Node tests on Windows.
Here's a stack trace: https://ci.appveyor.com/project/anmonteiro/lumo/build/1.0.123
Tried to pass on some closure definitions to the cljs compiler like that
(test-cljs :js-env :phantom
:cljs-opts {:compiler-options {:closure-defines {"PORT" 1234
"HOST" "just.a.test.host"}}})))
also tried with
(test-cljs :js-env :phantom
:cljs-opts {:closure-defines {"PORT" 1234
"HOST" "just.a.test.host"}}})))
When running the tests, these constants aren't defined at all. Am I missing something?
I have a test suite that runs and passes with {:js-env :phantom}
, however with this task:
(deftask run-cljs-node-tests
"Run cljs node.js tests"
[]
(task-options! test-cljs {:js-env :node})
(test-cljs))
I got the following error message:
boot testing run-cljs-node-tests
clojure.lang.ExceptionInfo: java.lang.AssertionError: Assert failed: node should be used with :target :nodejs and :hashbang false
(and (= :nodejs (:target opts)) (false? (:hashbang opts)))
data: {:file
"/var/folders/3h/xfhx4g953mv6l68c_qywbz4m0000gn/T/boot.user3520479088789272618.clj",
:line 57}
java.util.concurrent.ExecutionException: java.lang.AssertionError: Assert failed: node should be used with :target :nodejs and :hashbang false
(and (= :nodejs (:target opts)) (false? (:hashbang opts)))
java.lang.AssertionError: Assert failed: node should be used with :target :nodejs and :hashbang false
(and (= :nodejs (:target opts)) (false? (:hashbang opts)))
doo.core/assert-compiler-opts core.clj: 103
...
crisptrutski.boot-cljs-test/eval1483/fn boot_cljs_test.clj: 88
...
crisptrutski.boot-cljs-test/eval1515/fn boot_cljs_test.clj: 137
...
clojure.core/apply core.clj: 630
boot.user/eval1677/fn/fn/fn boot.user3520479088789272618.clj: 51
...
boot.user/eval1677/fn boot.user3520479088789272618.clj: 51
...
clojure.core/apply core.clj: 630
boot.core/construct-tasks core.clj: 684
...
clojure.core/apply core.clj: 630
boot.core/boot/fn core.clj: 712
clojure.core/binding-conveyor-fn/fn core.clj: 1916
...
Updating the options to match what was suggested with {:js-env :nodejs}
, gives different error:
boot testing run-cljs-node-tests
Writing suite.cljs...
Writing output.cljs.edn...
Compiling ClojureScript...
• output.js
Running cljs tests... clojure.lang.ExceptionInfo: java.lang.AssertionError: Assert failed: (valid-js-env? js-env)
data: {:file
"/var/folders/3h/xfhx4g953mv6l68c_qywbz4m0000gn/T/boot.user7375995942041478656.clj",
:line 57}
java.util.concurrent.ExecutionException: java.lang.AssertionError: Assert failed: (valid-js-env? js-env)
java.lang.AssertionError: Assert failed: (valid-js-env? js-env)
doo.core/run-script core.clj: 123
...
crisptrutski.boot-cljs-test/eval1483/fn/fn/fn boot_cljs_test.clj: 98
adzerk.boot-cljs/eval1333/fn/fn/fn boot_cljs.clj: 199
adzerk.boot-cljs/eval1291/fn/fn/fn boot_cljs.clj: 133
crisptrutski.boot-cljs-test/eval1453/fn/fn/fn boot_cljs_test.clj: 75
boot.core/run-tasks core.clj: 701
boot.core/boot/fn core.clj: 711
clojure.core/binding-conveyor-fn/fn core.clj: 1916
...
Am I missing something on how to setup the node env?
For full context of when this error is happening please see magomimmo/modern-cljs#338.
It is my undertanding that node.js does not have a window object.
To reproduce I run:
boot test-cljs
The :resource-paths
directories in the working set are gone.
For non-test files, could leverage namespace dependency graph somehow
The downside of :exec-dir
- more work to use locally installed npm tools
Something that just works "before", like cljs-repl
There is an issue with doo while using the latest cljs, can we set the compiler options as per final comment:
Will simply leverage bensu/doo#10
Doo run-script starts new Karma instance for each run. Using install!
and karma-run!
it is possible to only start one instance and run tests in that.
WIP code here: Deraen@e749343
Also fixes #31 by copying node_modules (and everything) to a single tmp-dir for Karma.
With the latest version (0.3.1), I get the following exception when invoking test-cljs
:
crisptrutski.boot-cljs-test/run-tests! boot_cljs_test.clj: 139
crisptrutski.boot-cljs-test/link-resources! boot_cljs_test.clj: 111
boot.file/hard-link file.clj: 165
java.nio.file.Files.createLink Files.java: 1086
sun.nio.fs.WindowsFileSystemProvider.createLink WindowsFileSystemProvider.java: 608
sun.nio.fs.WindowsException.rethrowAsIOException WindowsException.java: 97
sun.nio.fs.WindowsException.translateToIOException WindowsException.java: 83
java.nio.file.AccessDeniedException: C:\<...>\cr4\-iubjet\cljs_test\node_modules -> node_modules
Because namespaces option is defined as #{str}
it is not possible to define symbols of namespaces when invoking cljs-test
from cli: boot test-cljs -n frontend.core-test
will fail because namespace is passed in as string.
I think the correct solution here would be to define the type of namespaces argument as edn
and document and assert that it is a string. It shouldn't change the behavior when task is used from clj but it allows setting namespaces from cli: boot test-cljs -n "#{frontend.core-test}"
(no '
in EDN).
When requiring jayq.core, PhantomJS complains about missing libraries.
Is there a way to pass to PhantomJS external libraries it should load in addition to the CLJS Compiles outputs.
Writing output.cljs.edn...
Using torcaui/suite.cljs...
Compiling ClojureScript...
WARNING: Replacing ClojureScript compiler option :main with automatically set value.
• output.js
Running cljs tests...
ReferenceError: Can't find variable: jQuery
phantomjs://code/phantom379506722135246806.js:81 in onError
Elapsed time: 2.595 sec
I know this might be a problem with the way JayQ does not package jQuery with itself but relies on you to require it.
I'm trying to set up a test system where a test case is automatically generated based on test data present in the file system including the expected output. However, I can't figure out how to access those files from within the test runner.
A simplified example:
(deftask backend-test []
(merge-env! :source-paths ["clj/backend/src" "clj/backend/test"]
:resource-paths ["clj/backend/fixtures"])
(test-cljs :js-env :node :exit? true))
Directory structure of clj/backend
:
|- src
|- test
|- fixtures
|- test-data
|- sample-input-1.edn
|- expected-output-1.html
|- sample-input-2.edn
|- expected-output-2.html
Is it possible to somehow make the contents of clj/backend/fixtures
accessible from the test runner so I can generate test cases based on the contents of test-data
?
I saw that e.g node_modules
is manually moved into the tmp dir: https://github.com/crisptrutski/boot-cljs-test/blob/master/src/crisptrutski/boot_cljs_test.clj#L136
So I guess I would somehow have to do that with the files I want to use as well?
Thank you in advance!
Since boot-cljs
edn files can set the compiler option :output-to
, more cases are supported by taking the id
rather than inferring it. This also builds on familiarity with the boot-cljs
task (see http://www.dotkam.com/2015/12/22/the-story-of-booting-mount)
@bensu just released a new snapshot version that supports running things with optimizations :none 👍
Could you add some general instructions on how to run a test-suite in multiple environments with the lower-level tasks?
I'm trying to have a task compose phantom and browser tests, but the second task picks up the js files of the first one and gives an error.
Right now I can only get both environments to work by running the individuals test tasks separately in their own boot invocation, and cleaning up the target-path in between. Though this could probably be automated, it doesn't even sound like the right way to do this!
Cheers
Think this makes sense, but creates stronger doo coupling. Or perhaps we could refactor so that the doo macro is not required around suite.
Various ideas
We have a problem switching from version "0.2.1" to version "0.3.0" of boot-cljs-test,
when we replace the option "--out-file" (allowed in "0.2.1" but deprecated in "0.3.0") with "--ids",
as suggested by the test-cljs task.
Old version of the code
New version of the code
Github location: https://github.com/manuTro/cljs-test-problem/tree/new_library_version
Changes with respect to old version:
created folder html/js
created file main.cljs.edn in html/js
in shopping.html, changed javascript file path from main.js to js/main.js
in build.boot, changed test-cljs option ":out-file main.js" to ":ids ["js/main"]"
in build.boot, changed test-cljs option :update-fs? from true to false
when we run the code, the tests are not executed and we get the following error message:
Testing with Phantom:ClojureScript could not load :main, did you forget to specify :asset-path?
ReferenceError: Can't find variable: goog
phantomjs://code/phantom4803593222426079124.js:81 in onError
How should we modify the "test-cljs" task options in order to obtain the behaviour we had with the "0.2.1" version of boot-cljs-test?
Since doo-run-all
can take a regex to limit the namespaces to run, in some cases it may be preferable to defer filtering namespaces to runtime - the holy grail of truth.
Since we need to enumerate the namespaces anyway currently to make sure they're loaded, in most cases this is not really worth it, but perhaps it makes the most sense in the case of using explicit .cljs.edn
files (where the requires are known).
Currently this plugin plays-safe and subsets namespaces to test to those directly required by the edn file, but this would be an easy way out. Other possible cases could include files defining additional namespaces (through extra ns forms or magic macros?). Not sure if these are real cases.
Using an approach like this we could even collapse generic includes and excludes into a single (though eldritch) regex.
Just capturing this idea, but it may be nonsense.
Once doo
supports filtering actual test cases, this exact problem comes back with a twist though, so no thought on it is wasted.
Hi, I'm trying to use boot-cljs-test
in a pipeline with boot-test
. My goal is to be able to simultaneously run CLJ and CLJS test, even when using portable .cljc
files. The pipeline could be something like this:
boot testing test-cljs -n <a portable namespace> test -n <a portable namespce>
The above testing
task only adds test/cljc
dir to :source-paths
env variable. As soon as I remove the -n
option like so:
boot testing test-cljs test
The test
task evaluates two times any portable namespace (i.e. any .cljc
file). Moreover, if I prepend test
to test-cljs
in the boot pipeline (e.g. boot test test-cljs
) the above duplication effect disappears. The problem with this simple solution is that if any CLJ test assertion fails, test
raises an exception and the test-cljs
is not triggered until the failed assertion is solved.
Is there any clue for this testing scenario?
See #1
As boot-cljs-test doesn't create .cljs.edn
based on options but instead depends on the default one from boot-cljs, all cljs files in fileset and compiled and loaded.
Instead if would be preferred to create a cljs.edn file which only requires the output-file namespace. Then only the namespaces which are required by test namespaces are compiled and loaded.
This possibly has huge effect on performance with larger projects.
Hello folks!
I got an error in lumo
's latest build in appveyor (windows):
java.lang.Thread.run Thread.java: 745
java.util.concurrent.ThreadPoolExecutor$Worker.run ThreadPoolExecutor.java: 617
java.util.concurrent.ThreadPoolExecutor.runWorker ThreadPoolExecutor.java: 1142
java.util.concurrent.FutureTask.run FutureTask.java: 266
...
clojure.core/binding-conveyor-fn/fn core.clj: 2027
boot.core/boot/fn core.clj: 1031
boot.core/run-tasks core.clj: 1021
crisptrutski.boot-cljs-test/eval773/fn/fn/fn boot_cljs_test.clj: 238
crisptrutski.boot-cljs-test/-prep-cljs-tests/fn/fn boot_cljs_test.clj: 155
crisptrutski.boot-cljs-test/ensure-suite-ns! boot_cljs_test.clj: 127
crisptrutski.boot-cljs-test.utils/file->ns utils.clj: 38
clojure.core/re-pattern core.clj: 4773
java.util.regex.Pattern.compile Pattern.java: 1028
java.util.regex.Pattern.<init> Pattern.java: 1351
java.util.regex.Pattern.compile Pattern.java: 1702
java.util.regex.Pattern.error Pattern.java: 1955
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
^
description: "Unexpected internal error"
index: 1
pattern: "\\"
clojure.lang.ExceptionInfo: Unexpected internal error near index 1
\
^
line: 220
Hopefully just a simple fix?
hi @hellonico 👋 😄
the message you've pasted is pretty opaque, and means that the script which ends up executing your tests is not loading the code correctly.
to give a quick overview of how this libraries is used by tenzing, the test-cljs task does the following:
the error you're seeing is occuring in (3)
so what could go wrong?
Happily doo will soon improve to provide better diagnostic messages (see bensu/doo#21), to tell these cases apart
things to try:
if you can provide more details here or even a reproducing repo, i'd be glad to help you debug further.
@martinklepsch we should probably cut a release to get martinklepsch/tenzing#40 out, as i think the old defaults are probably the issue
Waiting for supporting machinery to land in boot.core
Doo takes two output options: debug
and verbose
.
The most naturally-boot way to handle this would be via a "stacking" log level argument:
boot cljs-test verbose=false, debug=false
boot cljs-test -v verbose=true, debug=false
boot cljs-test -vv verbose=true, debug=true
If you just have Running cljs tests...
with no further output for 10 minutes or more, Travis will cancel and fail the whole build.
All you need to do to avoid this is make sure there is output to the terminal more than once per 10 minutes.
Hi, thanks for sharing your lib. I got a few problems that prevents me from using it,
when I use chrome, I get a doo
not found in chrome, and a lot of warnings for empty pattern matching:
Using [crisptrutski/boot-cljs-test "0.3.0"]
(deftask tests []
(comp
(in-env :env :dev)
(watch)
(speak)
(test-cljs :js-env :chrome)
(build)))
(deftask build []
(comp (speak)
(cljs)
(sass)))
› boot tests ☹
cli: option resources: flags should not have optargs, got RESOURCES
Adding: ([doo "0.1.7"]) to :dependencies
Starting file watcher (CTRL-C to quit)...
Compiling ClojureScript...
• cljs_test/generated_test_suite.js
WARNING: boolean? already refers to: #'clojure.core/boolean? in namespace: clojure.tools.analyzer.utils, being replaced by: #'clojure.tools.analyzer.utils/boolean?
WARNING: boolean? already refers to: #'clojure.core/boolean? in namespace: clojure.tools.analyzer, being replaced by: #'clojure.tools.analyzer.utils/boolean?
WARNING: -dissoc already refers to: cljs.core/-dissoc being replaced by: konserve.protocols/-dissoc at line 3 /Users/laurent/.boot/cache/tmp/Users/laurent/dev/eva/eva-frontend/qv6/l66cqp/cljs_test/generated_test_suite.out/konserve/protocols.cljc
;; ======================================================================
;; Testing with Chrome:
[doo] Started karma server
[doo] Started karma run
Writing main.cljs.edn...
Compiling ClojureScript...
• main.js
07 04 2017 11:25:11.576:WARN [watcher]: Pattern "/Users/laurent/.boot/cache/tmp/Users/laurent/dev/proj/proj-frontend/qv6/-ueasqk/cljs_test/generated_test_suite.out/goog/base.js" does not match any file.
07 04 2017 11:25:11.580:WARN [watcher]: Pattern "/Users/laurent/.boot/cache/tmp/Users/laurent/dev/proj/proj-frontend/qv6/-ueasqk/cljs_test/generated_test_suite.out/cljs_deps.js" does not match any file.
07 04 2017 11:25:11.581:WARN [watcher]: Pattern "/Users/laurent/.boot/cache/tmp/Users/laurent/dev/proj/proj-frontend/qv6/-ueasqk/cljs_test/generated_test_suite.js" does not match any file.
07 04 2017 11:25:11.619:WARN [watcher]: Pattern "/Users/laurent/.boot/cache/tmp/Users/laurent/dev/proj/proj-frontend/qv6/-ueasqk/cljs_test/generated_test_suite.out/**" does not match any file.
07 04 2017 11:25:11.634:WARN [watcher]: Pattern "/Users/laurent/.boot/cache/tmp/Users/laurent/dev/proj/proj-frontend/qv6/-ueasqk/cljs_test/generated_test_suite.out/**/*.js" does not match any file.
07 04 2017 11:25:11.635:WARN [watcher]: Pattern "/Users/laurent/.boot/cache/tmp/Users/laurent/dev/proj/proj-frontend/qv6/-ueasqk/cljs_test/generated_test_suite.out/*.js" does not match any file.
07 04 2017 11:25:13.330:WARN [watcher]: Pattern "/Users/laurent/.boot/cache/tmp/Users/laurent/dev/proj/proj-frontend/qv6/-ueasqk/cljs_test/generated_test_suite.out/goog/base.js" does not match any file.
07 04 2017 11:25:13.337:WARN [watcher]: Pattern "/Users/laurent/.boot/cache/tmp/Users/laurent/dev/proj/proj-frontend/qv6/-ueasqk/cljs_test/generated_test_suite.out/cljs_deps.js" does not match any file.
07 04 2017 11:25:13.339:WARN [watcher]: Pattern "/Users/laurent/.boot/cache/tmp/Users/laurent/dev/proj/proj-frontend/qv6/-ueasqk/cljs_test/generated_test_suite.js" does not match any file.
07 04 2017 11:25:13.367:WARN [watcher]: Pattern "/Users/laurent/.boot/cache/tmp/Users/laurent/dev/proj/proj-frontend/qv6/-ueasqk/cljs_test/generated_test_suite.out/**" does not match any file.
07 04 2017 11:25:13.379:WARN [watcher]: Pattern "/Users/laurent/.boot/cache/tmp/Users/laurent/dev/proj/proj-frontend/qv6/-ueasqk/cljs_test/generated_test_suite.out/**/*.js" does not match any file.
07 04 2017 11:25:13.379:WARN [watcher]: Pattern "/Users/laurent/.boot/cache/tmp/Users/laurent/dev/proj/proj-frontend/qv6/-ueasqk/cljs_test/generated_test_suite.out/*.js" does not match any file.
Chrome 57.0.2987 (Mac OS X 10.12.4) ERROR
Uncaught ReferenceError: doo is not defined
at http://localhost:9876/context.html:1
I installed karm, karma-cljs-test and chromedriver, am I missing something?
Thanks for taking a look,
Currently boot-cljs-test adds dependency to doo directly using set-env!
. This causes side-effects in case if cljs-test is being run as part of package task, the doo dependency would be added to resulting uberjar.
Simple workaround would be to add the dependency with :scope "test"
but even then if would case side-effect on classpath.
Proper way would be to use pods to isolate this dependency.
I've run into a situation in which I need to set the command line options for the phantomjs runner, specifically I need to turn off the web security for a set of tests that hit an external server. Doo provides the ability to do this via the :paths option, but there is no way to feed this through the current version of the test-cljs
task.
I currently have a fork where the doo options can be set. These options are simply merged into the options passed to run-script
(currently only :ext-dir). If that is acceptable, I can create a PR for the change.
Hi. Thanks for your plugin. Is there any interest in having the ability to auto-run tests like the doo plugin does?
This error is happening as of upgrading from boot-cljs 2.0.0
I can't really understand why both boot-cljs-test
and boot-test
run all project namespace when the -n
option is not set to a specific test namespace. Is it not a waste of time, especially in a TDD workflow scenario?
I know that to test private
symbols you need to test them inside the defining namespace, but I never met a source code doing that. On the contrary, most of the time people create a test directory layout like the following:
where all the application tests are confined. IMHO it would be better to have an option to say where the test namespaces are located and interpret the absence of the -n
option as "run all the namespace in the test directories. Is my opinion so wrong?
Since this can now run :none
builds there is no need to compile the build as part of the test task, right?
This is something doo
can take care of, just need to call the appropriate method at the right time.
Side note - lein doo
only seems to do this in one of the branches (auto
vs once
) - that's probably a small bug to be addressed too
Maybe just support granular levels of verbosity (-v
, -vv
, -vvv
) which map onto doo
's :verbose
and :debug
params, and similarly affect info
and debug
and trace
logging in the build tasks.
.clj
test task(1) Seems to not be working:
$ boot test
. . .
1 failures, 0 errors.
$ echo $?
0
See https://discuss.circleci.com/t/clojure-test-metadata-collection/128 for a discussion about a lein plugin which achieves this.
A boot plugin would be welcome, and then perhaps an option here as sugar to include and activate the plugin.
Currently when using this task with speak
the sound always plays success even if tests fail. It would be neat if errors (warnings if there's a use case too?) are supported as well.
@pandeiro hands welcome :)
@martinklepsch case combined with dev build would be great. any other examples worthwhile?
Projects using this library should not need to specify transitive dependencies
This trivial change would improve the end user experience better for setting specific keys like :alias
and :paths
globally.
Perhaps args-of-demeter cascading down into test-cljs
signature is also justified.
boot test-cljs -n org.martinklepsch.cc-set-test
Writing suite.cljs...
Writing output.cljs.edn...
Compiling ClojureScript...
• output.js
Running cljs tests...
And then it's stuck 😄
I've simplified https://github.com/aatree/aautil/ to the point where it is just a test on a very small .cljs file.
II was told on the clojurians/boot channel that it runs ok on non-windows. On windows, I am getting
Writing output.cljs.edn...
Writing clj_test\suite.cljs...
Compiling ClojureScript...
WARNING: Replacing ClojureScript compiler option :main with automatically set value.
ò output.js
Running cljs tests...
ERROR: doo was not loaded from the compiled script.
Make sure you start your tests using doo-tests or doo-all-tests
and that you include that file in your build
Ran on boot-cljs-test 0.2.1 and 0.2.2-SNAPSHOT to same effect. Got null pointer on 0.3.0-SNAPSHOT:
Writing cljs_test\suite.cljs...
Writing cljs_test\suite.cljs.edn...
Writing suite.cljs.edn...
Compiling ClojureScript...
Running cljs tests...
;; ======================================================================
;; Testing with Phantom:
clojure.lang.ExceptionInfo: java.lang.NullPointerException
data: {:file
"C:\\Users\\Bill\\AppData\\Local\\Temp\\boot.user2631139475250475313.clj",
:line 31}
java.util.concurrent.ExecutionException: java.lang.NullPointerException
java.lang.NullPointerException:
clojure.string/replace/invokeStatic string.clj: 101
clojure.string/replace string.clj: 75
crisptrutski.boot-cljs-test/eval836/fn/fn/fn/fn boot_cljs_test.clj: 114
crisptrutski.boot-cljs-test/eval836/fn/fn/fn boot_cljs_test.clj: 98
adzerk.boot-cljs/eval326/fn/fn/fn boot_cljs.clj: 201
adzerk.boot-cljs/eval275/fn/fn/fn boot_cljs.clj: 135
crisptrutski.boot-cljs-test/eval800/fn/fn/fn boot_cljs_test.clj: 79
boot.core/run-tasks core.clj: 794
boot.core/boot/fn core.clj: 804
clojure.core/binding-conveyor-fn/fn core.clj: 1938
...
When running the tests in Chrome or Firefox, the browsers open briefly, but no actual tests get executed. The same tests work just fine in PhantomJS.
Here's a small repo demonstrating the issue: https://github.com/SparkFund/cljs-test-problem, and here's the output I see when I attempt to run the tests in Chrome (latest Chrome, latest MacOS, problem can be reproduced by colleagues):
$ node --version
v6.10.0
$ npm install --global karma karma-chrome-launcher karma-firefox-launcher karma-cljs-test
...
$ boot test-in-chrome
Adding: ([adzerk/boot-cljs "1.7.228-2"] [doo "0.1.7"]) to :dependencies
Compiling ClojureScript...
• cljs_test/generated_test_suite.js
Running cljs tests...
;; ======================================================================
;; Testing with Chrome:
[doo] Created karma conf file: /var/folders/7m/8846n6kn08v2cw2m09hdfs540000gn/T/karma_conf4885380502268738690.js
[doo] Started karma server
25 05 2017 15:10:21.314:WARN [watcher]: All files matched by "/Users/jeff/.boot/cache/tmp/Users/jeff/spark/cljs-test-problem/86v/oz0m8x/cljs_test/generated_test_suite.out/**/*.js" were excluded or matched by prior matchers.
25 05 2017 15:10:21.317:WARN [watcher]: All files matched by "/Users/jeff/.boot/cache/tmp/Users/jeff/spark/cljs-test-problem/86v/oz0m8x/cljs_test/generated_test_suite.out/*.js" were excluded or matched by prior matchers.
[doo] Started karma run
Close Karma run
Shutdown Karma Server
I attempted to inspect either the generated Karma config file or the contents of generated_test_suite.out
but it appears those temp files get cleaned up post-haste and are no longer around to look at.
As far as I know I'm using the most recent versions of all my deps. Please let me know if there's more I can do to help troubleshoot this, thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.