我们有一个项目,其中包含一个 Web 角色和一个辅助角色。 我想在本地计算机上运行辅助角色的集成测试,但我不知道如何仅启动辅助角色的实例才能运行测试。我不想启动集成测试的 Web 角色,因为我不需要它。
在一个单独的项目中,只有 worker 角色,这真的很好而且很容易做到。
创建一个仅包含工作程序及其测试的单独解决方案(然后也在源代码管理中)是一个好主意吗?这样,我将在主解决方案(即已部署的解决方案)中拥有项目,但我不会通过在 TFS Online 中不可“执行”的集成测试“破坏”该解决方案。
为集成测试提供单独的解决方案通常是一个好主意,以免因 TFS 中不可执行的测试(无论是在线 TFS 还是本地 TFS)破坏主要解决方案?我们通常将单元测试放在主解决方案的项目中,这些测试在 TFS 构建应用程序后执行。
最佳答案
我尝试了一个看起来不错的解决方案。让我解释一下。
分支结构:
- 开发
- 源代码
- Main.Web
- 主模型
- 主要.持久化
- Main.Worker1
- Main.Worker2
- 集成测试
- Main.Worker1
- Main.Worker1.IntegrationTests (.dll)
- Worker.IntegrationTest.CloudService(仅在本地启动工作线程)
- 源代码
- 产品
我在“integrationTests”中创建了一个 .sln,其中添加了 Main.Worker1 将其包含在源代码管理中。这样做为我在引用原始项目的单独解决方案中提供了集成测试的自由空间。现在我可以启动两个 VS 实例,启动集成测试并根据需要逐行调试工作项目。
一个好的副作用是,当我将代码合并到 prod 分支时,我不会通过集成测试破坏它。
如果有人找到更好的解决方案,最好将其发布。
关于azure - 是否可以仅启动部署角色之一以进行本地集成测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25666151/