Azi am petrecut aproape două ore încercând să fac un lucru extrem de complex: să conving PhpStorm să ruleze testele de JS. Scopul era să pot rula fiecare test individual la click:

Configurarea e simplă: Run -> Edit configuration, adaugi un Mocha cu următoarele configurări:
Mocha package:
PROJECT_PATH\node_modules\mocha-webpack
Extra Mocha options:
--webpack-config=PROJECT_PATH\node_modules\laravel-mix\setup\webpack.config.js --require PROJECT_PATH\tests\JS\setup.js
PROJECT_PATH
este calea absolută a proiectului.
Ai putea crede că asta e tot. Doar că nu, trebuie să editezi valorile astea în Templates:

De ce am pierdut atât de mult timp? Pentru că în toate ferestrele cu setări din editor există șmecheria asta „for current project”:

Dar la run/debug? Nu era. Și nu modificam, că nu voiam să bușesc editorul.
Și înainte să spui că „hai mă, nu ai cum să bușești editorul”, gândește-te că ăsta e singurul editor care îți permite să dezactivezi toate plugin-urile. Și care a implementat functionalități vitale ca plugin-uri. Nu știu dacă îți dai seama ce înseamnă treaba asta de fapt, dar dacă nu te prinzi, îți zic eu: poți dezactiva plugin-urile și să te trezești cu un editor care nu mai pornește.
Instalezi deps:
npm i expect jsdom jsdom-global mocha mocha-webpack vue-test-utils --save-dev
În setup.js
ai:
require( 'jsdom-global')();
Opțional, dacă vrei să rulezi testele și în CLI, poți adăuga în package.json
:
"scripts": {
"test": "mocha-webpack --webpack-config=node_modules/laravel-mix/setup/webpack.config.js --require tests/JS/setup.js tests/JS/**/*.spec.js"
}