This repository contains a benchmark that can be used to evaluate SynTest Framework - JavaScript.
- Clone the
benchmarkproject:
git clone git@github.com:syntest-framework/syntest-javascript-benchmark.git- Move into the
benchmarkproject and install the dependencies
cd syntest-javascript-benchmark
npm installNote: this will also initiate the git submodules and install dependencies of the benchmark projects
- Run the tool
npx syntest javascript test- Create a local working directory:
mkdir syntest
cd syntest- Clone all projects (i.e.,
core,javascript, andbenchmark) in the same directory:
git clone git@github.com:syntest-framework/syntest-framework.git
git clone git@github.com:syntest-framework/syntest-javascript.git
git clone git@github.com:syntest-framework/syntest-javascript-benchmark.git- Move into the
coreproject, install all the dependencies, and build the project to compile all the TypeScript code:
cd syntest-framework
npm install
npm run build- Move into the
javascriptproject, install all the dependencies, link the dependencies contained within thecoreto the local version, and build the project to compile all the TypeScript code.
cd syntest-javascript
npm install
./link.sh
npm run build- Move into the
benchmarkproject and call the local:install script:
cd syntest-javascript-benchmark
npm run local:installThis will link the core and javascript project to the current node_modules folder.
Note: this will also initiate the git submodules and install dependencies of the benchmark projects.
- Run the tool
npx syntest javascript testThe file .syntest-projects.json contains the different configurations needed to run the various benchmarks contained in this project:
- CommanderJS
- Express
- JavaScript Algorithms
- Lodash
- Moment
These configurations can be manually provided on the CLI or pasted into the .syntest.json config. As basic configuration is provided by default in the .syntest.json config.
There are various presets:
- DynaMOSA
- MOSA
- NSGAII
That configure all the parameters for that algorithm.
Additionally, users can configure all parameters themselves by providing the individual configuration paramaters:
- search-algorithm
- population-size
- objective-manager
- secondary-objective
- crossover
- procreation
- sampler
By default the search algorithm will run until all objectives are covered. It is recommanded to provide an additional search budget that constraints the time the search algorithm has. The framework provides the following budgets:
- total-time
- search-time
- iterations
- evaluations