ASP.NET中使用QUnit测试Javascript的推荐结构

ASP.NET中使用QUnit测试Javascript的推荐结构,asp.net,jquery,asp.net-mvc,qunit,Asp.net,Jquery,Asp.net Mvc,Qunit,我有一个标准的ASP.NETMVC(Version2Preview 2)解决方案,在单独的项目中进行实际的项目和服务器端单元测试 因为这个项目在客户端非常繁重,所以我想制作一个ClientTest项目,它使用QUnit来测试主项目 我曾想过用一个HTML文件创建一个常规的ASP.NET webforms项目,该文件将加载脚本/目录中的各种脚本,并用QUnit测试它们。不幸的是,这将产生另一个ASP.NET开发服务器。在运行测试之前,我可以配置正在运行的MVC project server的端口,

我有一个标准的ASP.NETMVC(Version2Preview 2)解决方案,在单独的项目中进行实际的项目和服务器端单元测试

因为这个项目在客户端非常繁重,所以我想制作一个ClientTest项目,它使用QUnit来测试主项目

我曾想过用一个HTML文件创建一个常规的ASP.NET webforms项目,该文件将加载脚本/目录中的各种脚本,并用QUnit测试它们。不幸的是,这将产生另一个ASP.NET开发服务器。在运行测试之前,我可以配置正在运行的MVC project server的端口,但必须有更好的方法,不仅仅是将测试html文件扔到主MVC项目中


有人知道更好的方法吗?

也许你可以从中挑选技术,包括使用命令行、利用NUnit和WatiN,以及报告测试结果。此解决方案不需要单独的WebForms项目来利用中的测试,因为它都由WatiN处理。

我不太清楚为什么使用MVC会有不同-如果您想将测试集成到CI构建中,那么gWiz的建议就是要走的路

如果您的需求是希望直接在真实页面上以交互方式运行测试,而不影响该页面的外观,那么您可以查看Firebug插件。您还可以将FireUnit包裹在QUnit周围,如中所述


如果您担心包含测试内容,那么请在测试/调试版本中包含相关脚本,并在生产版本中禁用/删除它们。

我喜欢您将QUnit测试放在单独的项目中的想法。使用
XCOPY
在预构建事件中复制脚本怎么样

假设您的MVC项目是MyProj.Web,您的QUnit测试项目是MyProj.ClientTest(替换为您的项目名称)

  • 在ClientTest项目中创建脚本文件夹

  • 从Project>MyProj.ClientTest属性>生成事件,将以下内容添加到预生成事件命令行:

    XCOPY“$(SolutionDir)MyProj.Web\Scripts”“$(ProjectDir)Scripts”/S/Y

  • 然后在HTML中只包含脚本文件夹中相应的JavaScript文件


注意:当您想要重新运行测试时,您必须重建ClientTest项目以刷新JavaScript文件。根据需要调整文件夹名称、路径和
XCOPY
选项。

使用WaitiN是一个有趣的想法,但并不完全是我想要的。因为在客户端,我有一个完整的MVC框架运行,我希望有一个完全不可视的测试,而且我也不希望在主项目中有测试页面。否则会有在目标目录中累积孤立文件的风险
DEL“$(ProjectDir)Scripts\Web\*.js”
“Web”是我将要测试的.js文件复制到的子目录。