【问题标题】:How to access an XSD schema compiled into a BizTalk project?如何访问编译到 BizTalk 项目中的 XSD 架构?
【发布时间】:2019-02-22 19:58:22
【问题描述】:

我正在尝试向项目添加一些测试,以确保我们的内部 BizTalk 架构继续正确(验证)某些不符合我们业务规则的 XML 测试文件。

通常我会使用 XML 和 XSD 文件的路径,但是,由于 XSD 是 BizTalk 项目的一部分并且BuildAction 是“BtsCompile”,因此无法将文件设置为在本地复制。我知道我可以使用源文件的路径(目前这对我有用),但是,这感觉像是一个黑客,因为路径可能会因不同的环境而改变,并且在某些情况下甚至可能不存在(例如: CI/CD)。

如何按类型(例如:MyProject.Namespace.MySchema())或按 XML 命名空间(例如:http://myurl.com/schemas/MySchema)使用架构来验证示例 XML 文件?

如果重要的话,我的架构位于 BizTalk 项目中,而我的测试位于单独的单元测试项目中。我目前正在使用 Visual Studio 2013。

【问题讨论】:

  • 您在使用 BizUnit 吗? github.com/BizUnit/BizUnit
  • 不,我以前没听说过。不过,我一定会检查出来的!谢谢 Dijkgraaf。

标签: xml xsd automated-tests biztalk


【解决方案1】:

我要在这里给你一个框架挑战答案。

如何对 XSD 架构进行单元测试...

你没有。意思是,不要打扰。您将花费更多时间来设置单元测试,而不是在单元测试中捕获验证错误。

为什么?因为如果验证错误导致实际的硬错误(并非总是如此),您仍然会有错误,您只是浪费了大量时间在单元测试而不是功能测试中找到它。

几年前单元测试很流行,直到每个人都意识到投资回报率通常是净负数。

【讨论】:

  • 也许我没有使用正确的术语 - 我真的只是想确保架构不会验证某些损坏的 XML 输入文件,因此不良数据不会潜入我们的系统。从技术上讲,这可能不是单元测试,但我认为在我们开发模式时,测试仍然增加了一个有价值的安全网。我将改写问题以使其更清楚。
  • @JensEhrich 您可以通过在测试管道上将“验证文档结构”设置为 true 来直接在 BizTalk 中对其进行测试。就这样。不要再在这上面浪费时间了。
猜你喜欢
  • 2014-08-24
  • 1970-01-01
  • 2012-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-25
  • 1970-01-01
相关资源
最近更新 更多