According to this question, the way to get Resharper's test runner to recognize script dependencies in your jasmine test scripts is to include them in a doc comment, like so:
// include external files like so:
/// <reference path="/path/to/external-file.js" />
// than write your testing suite as usual:
describe('a silly suite', function() {
it('should test something is happening', function() {
expect(something).toBe('happening');
});
});
That's great, but I'm writing my jasmine tests in TypeScript, with a test that looks kinda like so:
///<reference path="../../../Scripts/typings/jasmine/jasmine.d.ts"/>
///<reference path="../../../Scripts/typings/sinon/sinon.d.ts"/>
///<reference path="../../../Scripts/Payboard/Models.ts"/>
///<reference path="../EventReferences.ts"/>
describe('Payboard.Events', () => {
var server: SinonFakeServer;
beforeEach(() => {
Payboard.Events.setApiKey('apikey');
server = sinon.fakeServer.create();
});
afterEach(() => {
server.restore();
});
describe('#getAbsoluteUrl', () => {
it('should prepend app.payboard.com to the relative url', () => {
var absoluteUrl = Payboard.Events.getAbsoluteUrl('/some/random/url');
expect(absoluteUrl).toEqual('//app.payboard.com/some/random/url');
});
});
and when I include references like ///<reference path="~/Scripts/sinon-1.9.0.js"/>
, I get a TS compile message:
Incorrect reference. Only files with a .ts extension are allowed.
In other words, TS doesn't let me include .js files in doc comment reference tags.
Any suggestions for a workaround?
It looks as if this is a known issue:
http://youtrack.jetbrains.com/issue/RSRP-389196
What they're going to have to do is add support for something like this:
/// <resharper_reference path="Scripts/jquery-1.8.2.js" />
/// <resharper_reference path="Scripts/MyClassUnderTest.js" />
Chutzpah already supports this format, so it would be nice if Resharper picked those up as well:
/// <chutzpah_reference path="Scripts/jquery-1.8.2.js" />
/// <chutzpah_reference path="Scripts/MyClassUnderTest.js" />
The workitem says that it'll be addressed in Resharper 9.0.
It's also possible to hack up a workaround where you copy sinon.js
to sinon.d.js
, and then put sinon.d.js
in the same folder where sinon.d.ts
is located.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With