Makefile - Contenu:
REPORTER = dot
all: build
build:
@./node_modules/coffee-script/bin/coffee \
-c \
-o lib src
clean:
rm -rf lib
mkdir lib
watch:
@./node_modules/coffee-script/bin/coffee \
-o lib \
-cw src
test:
@./node_modules/mocha/bin/mocha \
--reporter $(REPORTER) \
test/*.coffee
.PHONY: build clean watch test
Le répertoire racine du projet contient un dossier de test avec deux fichiers: mocha.opts et example.coffee.
example.coffee - Contenu
describe "feature", ->
it "should add two numbers", ->
(2+2).should.equal 4
Lors de l'exécution de make test
, l'erreur suivante apparaît:
cribe 'feature',
^^^^^^^^^
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
SyntaxError: Unexpected string
at Module._compile (module.js:429:25)
at Object..js (module.js:459:10)
at Module.load (module.js:348:31)
at Function._load (module.js:308:12)
at Module.require (module.js:354:17)
at require (module.js:370:17)
at /home/my_username/testcode/coffeepress/node_modules/mocha/bin/_mocha:261:27
at Array.forEach (native)
at load (/home/my_username/testcode/coffeepress/node_modules/mocha/bin/_mocha:258:9)
at Object.<anonymous> (/home/my_username/testcode/coffeepress/node_modules/mocha/bin/_mocha:249:1)
at Module._compile (module.js:441:26)
at Object..js (module.js:459:10)
at Module.load (module.js:348:31)
at Function._load (module.js:308:12)
at Array.0 (module.js:479:10)
at EventEmitter._tickCallback (node.js:192:40)
L'exécution de Mocha avec des fichiers js réussit, mais ne parvient pas à l'exécuter avec CoffeeScript. Je veux vraiment - pour la brièveté du code.
S'il vous plaît guider.
À partir de Mocha 1.0:
coffee-script n'est plus pris en charge immédiatement. Les transpileurs CS et similaires peuvent être utilisés en mappant les extensions de fichier (à utiliser avec --watch) et le nom du module. Par exemple,
--compilers coffee:coffee-script
avec CoffeeScript 1.6- ou--compilers coffee:coffee-script/register
avec CoffeeScript 1.7+.
(Quotation http://visionmedia.github.io/mocha/#compilers-option ) Donc, vous devez ajouter la ligne
--compilers coffee:coffee-script/register
ou, pour CS <= 1.6.x,
--compilers coffee:coffee-script
dans votre fichier mocha.opts
.
À partir de CoffeeScript 1.7, l'option devrait être:
--compilers coffee:coffee-script/register
Un numéro a été classé sur le site github de Mocha.
Apparemment, un changement de Mocha effectué en avril 2018 (en douceur) déconseillait l'option --compilers
. Dans la ligne de commande, vous obtenez maintenant:
(node: 27864) DeprecationWarning: "--compilers" sera supprimé dans une future version de Mocha; voir https://git.io/vdcSr pour plus d'informations
Comme le lien l'indique, cela peut facilement être corrigé en n'utilisant tout simplement pas --compilers
et en utilisant cette nouvelle option (simplifiée) mocha.opts
:
--require coffeescript/register
test/*.coffee
La dernière ligne est nécessaire pour faire comprendre à Mocha qu’il devrait maintenant utiliser les fichiers *.coffee
en tant que fichiers de test. Cela ne semble pas être couvert par l'option --require
.
mocha --require coffeescript/register
Source: https://github.com/mochajs/mocha/wiki/compilers-deprecation
Il me fallait deux modifications à mes arguments de moka pour que cela fonctionne:
--require coffee-script/register
--compilers coffee:coffee-script/register