Javascript VS、Resharper、Karma和AngularJS使用Jasmine进行模板单元测试

Javascript VS、Resharper、Karma和AngularJS使用Jasmine进行模板单元测试,javascript,angularjs,unit-testing,resharper,Javascript,Angularjs,Unit Testing,Resharper,我有一个带有.Net/C#后端的angular js项目。一些JS有单元测试,但至少有一个团队成员觉得必须跳出命令行是一个足够高的障碍,他不想编写单元测试。所以我试着让他们从与Resharper的内部VS中运行 问题是我在那里有html模板的指令。我找到的关于如何处理的每一个资源都是使用karma中的ng-html2js预处理器。没有任何Resharper文档直接告诉您如何指向karma.conf文件,这样就可以发生这种事情,我还没有找到任何资源表明有其他方法可以处理这种情况 根据Resharp

我有一个带有.Net/C#后端的angular js项目。一些JS有单元测试,但至少有一个团队成员觉得必须跳出命令行是一个足够高的障碍,他不想编写单元测试。所以我试着让他们从与Resharper的内部VS中运行

问题是我在那里有html模板的指令。我找到的关于如何处理的每一个资源都是使用karma中的ng-html2js预处理器。没有任何Resharper文档直接告诉您如何指向karma.conf文件,这样就可以发生这种事情,我还没有找到任何资源表明有其他方法可以处理这种情况

根据Resharper文档,您可以使用html测试工具,但我还没有发现任何迹象表明您可以从测试工具运行karma。我最近继承了这个项目,我想从解决团队成员的反对意见开始,而不是告诉他们接受它并去做


有谁能给我指出正确的方向(如何使用html工具启动karma,或者如何以其他方式进行预处理?)吗?

我们的项目中几乎有相同的设置。.net/c#后端,以及大量客户端内容(JS、scss、html)。我们通过运行构建/测试。Gulp是一个流式构建系统,非常快速且易于配置。也有很多用于普通任务的插件

要从gulp中启动karma runner,您可以在gulpfile中创建如下任务:

var gulp = require('gulp');
var karma = require('karma').server;

/**
 * Run test once and exit
 */
gulp.task('test', function (done) {
  karma.start({
    configFile: __dirname + '/karma.conf.js',
    singleRun: true
  }, done);
});
然后我们使用一个名为的VisualStudio扩展。此扩展允许您在VisualStudio中执行任何吞咽任务或目标。您还可以将任何Gulp任务或目标绑定到VisualStudio事件,例如Build和Solution Open。这样,您可以在构建项目时运行某些任务,或者在打开解决方案时运行Gulp Watch


因为我没有使用require.js,也从来没有使用过,所以我不知道如何将您在那里的内容转换为我需要的内容。另外,如果可以的话,我想和resharper呆在一起。我不认为说“是的,我无法在resharper中解决这个问题,所以现在我们改用gulp。”@AmyBlankenship require语句来自node.js。您是否使用客户端代码的生成系统?Grunt或gulp是两个非常好的构建工具。在nodejs上运行,并进行缩小、注释angularjs、concatatite文件等操作。这几乎是当今前端开发的一个需求。确定您尚未使用其中一个吗?:)VisualStudio可以构建和发布站点。一旦测试工作正常,它就可以在发布工作之前运行它们。添加其他内容的优势是什么?Visual Studio是一个很棒的工具,但在构建客户端资产(如JavaScript、less/sass/css、html)方面并不完美。Grunt或gulp是两种不同的工具,另一方面,它们是专门为这个用例构建的,并且非常好地完成了这项工作。一个狼吞虎咽的任务处理模板、丑化js、捆绑资产等只需几微秒即可完成。多亏了nodejs和streams,它闪电般的快。而且,别忘了,它还可以启动您的测试套件,并用JavaScript编写,这是一种您的前端人员已经非常熟悉的语言。我熟悉R#,但不熟悉运行ng测试。你看过特定于R#Javascript的测试设置了吗?不,当然,在提出问题之前,我从不查阅文档或尝试任何东西。这就是为什么我在我的问题中没有提到任何关于html工具部分的内容。我给了你一个非常苛刻的免责声明。我倾向于认为,假设有人在提问之前没有完成他们应该做的基本工作是有点苛刻的。