简体   繁体   中英

How can I use jasmine with a server-side typescript project?

I have a project that contains modules for both the server and client of my application, which are each built using webpack. I'm using Karma with Jasmine to test my client (which uses Angular) and I would like to use Jasmine to test the server, which is written in typescript, too.

Unfortunately, the only guides that I could find online used jasmine-node (which to be untouched for the past few years) instead of jasmine-npm. Can anyone suggest a way that I can use Jasmine, or an alternative, for testing within my project?

I've tried writing a jasmine.json file, or editing the one generated by jasmine with the init cli command, however this doesn't seem to work with typescript files.

At the moment, my project's structure is like so:

├── client
│   ├── karma.conf.js
│   ├── protractor.conf.js
│   ├── src
│   ├── tsconfig.json
│   └── webpack.config.js
├── server
│   ├── src
│   ├── tsconfig.json
│   └── webpack.config.js
└── node_modules

Its definately possible to use jasmine for your server side tests. Follow these steps and you'll be fine:

1) In your package.json add the following dev dependencies:

"jasmine": "latest",
"jasmine-core": "latest",

2) Setup your jasmine.json so that it will include all files you want to run tests on, etc.

{
  "spec_dir": "dist/dev/server/spec",
  "spec_files": [
    "unit/server/**/*[sS]pec.js"    
  ],
  "helpers": []
}

3) Add unit.ts that will bootstrap your testing process:

const Jasmine = require("jasmine");

let j = new Jasmine();

j.loadConfigFile("./jasmine.json");
j.configureDefaultReporter({
    showColors: true
});
j.execute();

Now all you have to do is compile and run your resulting unit.js in nodejs.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM