你如何使用 Jasmine + Resharper 引用外部库

Posted

技术标签:

【中文标题】你如何使用 Jasmine + Resharper 引用外部库【英文标题】:How do you reference external libraries with Jasmine + Resharper 【发布时间】:2013-07-26 03:19:48 【问题描述】:

我可以从 Resharper 8.0 单元测试运行器运行 Jasmine 单元测试。 我有一个问题,通常在 html 页面中的任何 javascript 引用(即在我的情况下为 Ext-Js)然后我无法使用 Resharper 测试运行器,因为您似乎无权访问 Resharper 的 HTML 页面用途。 (我假设它是因为我无法在磁盘上找到它而生成的)

我在想是否有一种方法可以直接从 Javascript 测试文件而不是通过 html 页面调用或加载外部库引用,那么我可以让它工作。我还没有发现 Javascript(或 Ext-Js)是否可行。

【问题讨论】:

【参考方案1】:

我为使用 Karma 测试运行器/Jasmine 1.x 和 2.0 版本和处理异步问题编写了 2 个用于处理 ExtJS 4 的存储库:这里它们是:https://github.com/cgauthier/karma_jasmine_1_extjs4 和 https://github.com/cgauthier/karma_jasmine_2_extjs4。加载外部引用的技巧是将它们作为文件添加到模块声明中。

【讨论】:

【参考方案2】:

目前看来要走的路是将包含语句硬编码为套件文件中的特殊 cmets(称为 doc-cmets 引用),例如:

// 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');
    );
);

请参阅this thread on the ReSharper community,作为此建议的来源。

【讨论】:

我将文件本地保存在项目中(是一个外部引用文件)并且它有效。有没有办法引用外部文件?即path="server/ext-all-debug.js" 如果 external files 是指位于另一个域中的文件,例如http://cdnjs.cloudflare.com/ajax/libs/1140/2.0/1140.css,我怀疑它会以同样的方式工作。试一试,让我知道这是否有效。 试过了,显然参考文档只支持相对于同一域的本地文件。即外部文件不起作用。我认为这就是我最初遇到问题的地方。将远程文件复制到本地文件就像宣传的那样工作。

以上是关于你如何使用 Jasmine + Resharper 引用外部库的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jasmine 和 TypeScript 进行单元测试

如何使用node.js jasmine设置断点?

.NET工具ReSharper:如何帮助Visual Studio用户?

resharper 改为VS自带的F12功能(转到定义)

是否可以将 ReSharper 与 Blend 一起使用?

Resharper插件的使用