作为一名数字生产商,与开发人员在定制的Umbraco项目上合作,我了解确保Umbraco保持最新的唯一方法是为添加到存储库的任何代码编写测试并使用持续集成服务器。在添加我们自己的定制修改时,Umbraco如何保持最新状态?
答案 0 :(得分:0)
每个项目都有"大"代码库可能会从持续集成和自动化测试中受益。如果要在后端和前端添加自定义功能,基于CMS的项目肯定会受益于自动UI测试以及单元测试。
基于Umbraco的项目,基本上是asp.net项目,也可以从这种方法中受益。
为什么需要自动化测试? (假设一个大的代码库,而不仅仅是一个简单的营销网站) 因为手动测试非常耗时,并且只能由一个人或一组测试人员完成。如果你有UI测试,例如在Selenium中,每个开发人员都可以在他们的本地安装上运行这些测试,以便在他们提交源控制服务器之前进行测试。非开发人员也可以运行这些测试,例如针对登台服务器。可以在部署之前和/或部署之后运行Selenium(或任何其他软件包)测试。
手动完成所有这些测试需要花费大量时间。 维持这些测试也需要更多时间, 但是,每次部署时都要手动完成它们。
对于Umbraco,您可以使用以下工具:
Visual Studio中的单元测试:具有单元测试项目的模板,可用于编写单元测试以测试自定义代码。
单元测试Umbraco:检查最新代码,因为它们有一些可以帮助您的代码。其他一些信息:http://www.aaron-powell.com/posts/2010-06-29-unit-testing-with-umbraco.html
Selenium:可以针对您的网站运行,并执行各种UI测试,例如验证表单,JavaScript功能。
Qunit:如果你需要javascript单元测试。 (我还没有用过这个,但我们正在研究测试我们的javascripts的解决方案)。
为什么要持续整合? CI可以帮助您尽早捕获错误,因为构建将每晚运行,甚至每次有人提交新代码来进行源代码控制。特别是如果您在团队中工作,CI可以非常有助于避免代码冲突。将CI与自动化UI测试相结合甚至更好。每天晚上,项目都会在服务器上构建,UI测试运行,早上作为制作人,您可以获得报告,无论一切都通过,构建是否有效等等......
这种方法需要额外的基础设施(ci服务器,svn服务器,其他安装等......),如果你只是在一个较小的网站上工作,可能会有点笨重。
我在这种情况下使用Umbraco:CI + selenium测试电子商务项目,每晚建立大约50个Umbraco站点,并运行一些基本的硒测试。每天早上这些网站都是新鲜的,并且基于最新的代码。