This code demonstrates CSS and JavaScript tests. It uses:
- Karma for cross-browser testing.
- Mocha for running tests.
- Chai for assertions.
- Quixote for testing CSS.
Important files:
-
src/Assignment[number]_test.js: CSS tests -
src/Assignment[number]].html: HTML code -
src/Assignment[number].css: CSS code -
build/config/karma.conf.js: Karma configuration. Look for the// QUIXOTEcomment to see how to make Karma serve CSS files.
Before running the tests:
- Install Node.js.
- Install Quixote:
npm install quixote - Install Jake:
npm install -g jake - Install all required packages:
npm i - Fixing audit issues:
npm audit fix
To run the tests:
-
Start the Karma server:
npm run dev1.1 Replace
./jake.sh karma(Unix/Mac) and./watch.shin package.json file
"scripts": {
"dev": "./jake.sh karma & ./watch.sh loose=true"
},
Note: No change needed for Windows Environment
- Open
http://localhost:9876in one or more browsers.
To run the app:
- Run application using live Server VsCode extension.
Note: Install Live server extension for VsCode if not installed
-
Select/Highlight the
srcfolder by clicking once. -
click on
Go Liveoption in righ-bottom corner of Vscode.
Note: If Go Live option not visible, please disable and then enable the Live server extension in VsCode.
- Open Web App in browser using correct path of HTML for relevant Assignment. For Example
To run Assignment 1, Url would be: http://127.0.0.1:5500/{Relative path}/src/Assignment-1/assignment1.html
-
Run
node_modules/.bin/karma run -- --grep="Assignment-1"every time you want to build and testAssignemnt 1. -
Run
node_modules/.bin/karma run -- --grep="Assignment-2"every time you want to build and testAssignemnt 2. -
Run
node_modules/.bin/karma run -- --grep="Assignment-3"every time you want to build and testAssignemnt 3. -
Run
node_modules/.bin/karma run -- --grep="Assignment-4"every time you want to build and testAssignemnt 4. -
Run
node_modules/.bin/karma run -- --grep="Assignment-5"every time you want to build and testAssignemnt 5.
This repository consists of the following directories:
build: Build automation.build/config: Build configuration.build/scripts: Build scripts. Don't run them directly.build/util: Modules used by the build scripts.
node_modules: npm dependencies (used by the build).src: Front-end code.vendor: Client code dependencies.
In the repository root, you'll find the following scripts. For each script, there's a .sh version for Unix and Mac and a .bat version for Windows:
jake: Build and test automation.watch: Automatically runsjakewhen any files change. Any arguments are passed through to jake.
For all these scripts, use -T to see the available build targets and their documentation. If no target is provided, the script will run default. Use --help for additional options.
The scripts have these additional options:
loose=true: Disable strict browser and version checks.capture=Firefox,Safari,etc: Automatically launch, use, and quit the requested browsers. You can use this instead of running./jake.sh karmaand manually starting the browsers yourself. Note that the browser name is case-sensitive. The Firefox launcher is included; if you need additional launchers, you'll need to install them; e.g.,npm install karma-safari-launcher.
MIT License. See LICENSE.TXT.