[英].Net Framework 4.6.1 MVC integration testing
我很难找到有关如何在我的旧 Net Framework 4.6.1 MVC 应用程序上运行集成测试的资源。 我尝试了很多我找到的指南,但出于某种原因,它们都不起作用。
我的应用程序太大了,可以将其升级到 Net 6,这将使该测试更加容易。 我尝试运行 OWIN TestServer,但它总是导致 404 错误。
所以我想知道,如何在旧的 mvc 上进行集成测试? 我是否按照正确的路径使用 OWIN TestServer 寻找解决方案? 还有什么我可以尝试的吗? 也想到了 Selenium,但无法让它启动一个假服务器来自动运行测试,我需要一个命令来初始化我在 IIS 上的应用程序,我们需要测试通过 azure CI 管道自动运行。
我的应用程序很旧,所以我尝试删除 Global.asax 并通过 Startup.cs 仅使用 owin 管道,但它显示错误消息“未找到与请求 uri 匹配的 HTTP 资源”,尝试了许多针对路由配置的修复等,没有成功。 尝试在解决方案上同时使用 global.asax 和 startup.cs 运行 OWIN TestServer 但没有成功,也尝试了 Selenium 但它不会自动启动假服务器,最好是在 memory 中,就像最新版本的 TestServer for .net core + 一样。
也试过以下: https://www.strathweb.com/2013/12/owin-memory-integration-testing/
有许多基于 .Net 框架的巨大的、有效的、遗留的产品。 它们是几年前(比方说 8-10 年)设计的。 所以那个时候测试堆栈不像现在这样。 除了单元测试(在 .Net 框架中完全支持)之外,您还可以进行集成和端到端测试,尽管不像在 .Net(核心)中那样简单。 这些是我在为一个巨大的.Net框架产品设计有效测试集的案例中的经验:
尽管可以在控制器上进行测试(请参阅此处),但我们发现开发和维护我们的产品非常繁重。 但对你来说它可能是合适的。
此外,我建议有一个迁移项目。 首先尽量让你的代码更新到最新的 .Net 框架版本(这并不难)。 如果用并行团队重写代码不是一种选择(虽然它需要大量资源,但它仍然不那么痛苦,)。 您可以考虑逐步更改模块/域并将非技术密集型代码移动到 .Net 标准库(可以在 .net 框架和 .Net 中使用),还可以考虑将模块/域提取到 .Net 微服务中一。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.