代码之家  ›  专栏  ›  技术社区  ›  wm_eddie

在ASP.NET中使用qunit测试javascript的推荐结构

  •  20
  • wm_eddie  · 技术社区  · 15 年前

    我有一个标准的ASP.NET MVC(版本2预览2)解决方案,在单独的项目中进行实际的项目和服务器端单元测试。

    因为这个项目非常客户端沉重,所以我想制作一个客户端测试项目,它也使用qunit来测试主项目。

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

    有人知道更好的方法吗?

    3 回复  |  直到 14 年前
        1
  •  17
  •   Mike Henry    14 年前

    我喜欢你把qunit测试放在一个单独的项目中的想法。用什么呢 XCOPY 要在预生成事件中复制脚本吗?

    假设你的MVC项目是 MyPROJ.Web 你的质量测试项目是 myproj.客户测试 (替换为项目名称)。

    • 在clienttest项目中创建一个scripts文件夹。

    • 项目 myproj.客户测试 属性>生成事件 ,将以下内容添加到 预生成事件命令行 :

      xcopy“$(solutiondir)myproj.web\scripts”“$(projectdir)scripts”/s/y

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

    注意:当您想要重新运行测试时,您必须重新构建clienttest项目来刷新javascript文件。调整文件夹名称、路径和 复印件 根据需要选择。

        2
  •  6
  •   G-Wiz RameshVel    15 年前

    也许你可以从中挑选技术 this article 包括使用命令行,使用watin来利用nunit,并将测试结果进行报告。这个解决方案不需要单独的webforms项目来利用中的测试,因为它都由watin处理。

        3
  •  2
  •   FinnNk    15 年前

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

    如果您的要求是要在不影响页面外观的情况下,直接在实际页面上交互运行测试,那么可以签出 FireUnit Firebug插件。你也可以在Qunit周围包上FireUnit,如上面所述。 John Resig's blog .

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