gpt4 book ai didi

testing - 如何自动测试 Tridion 模板(使用 TOM.NET)

转载 作者:行者123 更新时间:2023-11-28 19:43:00 25 4
gpt4 key购买 nike

我在模板项目中经常遇到问题。除了在 Template Builder 中运行模板之外,我无法以任何其他方式真正测试我的工作。如果我正在处理用于多个不同模板的 TBB,这是一个主要问题,因为这意味着在更改 TBB 中的代码后,我应该重新测试所有模板(并且可能有几个不同的页面/组件可能是情况略有不同,具体取决于内容)。

正如您在大型项目中所看到的那样,由于需要进行大量测试,TBB 被大量重复使用,更改它们会花费大量时间,我很想为此找到解决方案。我知道当前的 TOM.NET 几乎不可能进行单元测试(大多数类/方法都是内部的),那么实现自动化测试的替代方法是什么?

我研究过的一个解决方案是使用 Core Service 来启动带有一些测试内容的模板的渲染过程,然后检查输出是否符合预期,但实现这一点需要相当多的代码,因此会产生不必要的开销(我认为它仍然比手动重新测试案例花费的时间更少)。此外,这实际上不允许您测试单个 TBB,除非您(以编程方式)使用单个(或部分)TBB 创建单独的模板。这个解决方案的好处是你可以在开发时在本地笔记本电脑上运行测试,假设你可以连接到 Tridion 服务器(你仍然必须在运行测试之前将你的代码上传到 Tridion 所以它不是完全理想的解决方案).

我知道另一种选择是使用 DD4T/CWA,因为模板(通常)非常简单,您几乎可以在前端处理所有测试。

还有其他想法吗?

最佳答案

我同意重点是自动化 测试而不是单元 测试(毕竟,它主要是关于面向对象的编程)。 Tridion 的工作就是转换数据。测试数据转换所需的是已知输入,并能够对输出做出断言。多年来我尝试了各种方法,但迄今为止最有效的方法如下:

1) 对于每个模板,将测试内容保存在专用文件夹中,将测试页面保存在专用结构组中。内容是测试的输入,除非测试要求发生变化,否则不会更改。2)将组件放在页面上。发布页面。保持简单:您通常可以为单个测试场景创建一个页面。如果有帮助,您可以自动发布页面。3) 使用网络测试工具验证输出。这可能是 HtmlUnit、Selenium 或其他任何东西。

基本上 - Tridion 是一个用于执行转换的引擎。这部分不需要专门的测试执行引擎,尽管使用它来测试输出很有用。

模拟包听起来很有吸引力,但正如 Vesa 所说,它可能会变成大量的工作。我概述的简单方法在实践中行之有效,并在一个重要项目中得到了证明。如果愿意,您可以在主题上添加变体:我考虑过但从未在项目中做过的一件事是使用蓝图让您更加孤立。例如,您可以通过本地化您的组件模板来测试您的页面模板以生成静态和可预测的组件演示。只要您从单元测试方法的包袱中解脱出来,就可以说有足够的创造力空间。

关于testing - 如何自动测试 Tridion 模板(使用 TOM.NET),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9720022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com