Domanda

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?

È stato utile?

Soluzione

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.

Altri suggerimenti

///<reference path="~/Scripts/sinon-1.9.0.js"/>

You can't do this in a TypeScript file as reference is a language feature reserved for .ts and .d.ts.

Also '~/Scripts/' seems wrong from the get go. Resharper will index All js files included in your Visual Studio project and provide you intellisence, no comments necessary.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top