我们的“主要”解决方案是开发代码:共享库,服务,UI项目等。另一个解决方案是集成和自动化测试解决方案。它引用了几个开发项目。它是分开的原因是避免干扰开发解决方案的单元测试VSMDI文件。并允许我们使用不同的执行方法(其他测试运行程序,如Gallio或StoryTeller),而不会干扰开发解决方案。
最近,在开发解决方案中更改了一个接口,我们的一个测试模拟器实现了该接口。但是,它没有更新,因为在编译时没有警告,因为它在另一个解决方案中。这破坏了我们的CI构建。
有没有人有类似的设置?你如何处理这些问题,你是按照严格的程序还是有某种技术答案?
答案 0 :(得分:1)
一种方法是将任何共享接口提取到特定目录中,然后使用您的版本控制系统来确保两个项目之间的目录是相同的 - 例如,如果您使用Subversion,它有一个功能名为“externals”,允许一个项目包含一个目录,该目录实际上是指向另一个项目中指定目录(或指定目录的指定版本)的链接。
答案 1 :(得分:0)
如果你的模拟实现了引用项目的接口,那么该项目必须与其他测试项目一起构建。如果确实不是这样,请在visual studio中检查构建顺序/构建配置。
接口更改仍然可能不会触发任何编译错误,但测试确实会失败。但这与解决方案设置无关。
答案 2 :(得分:0)
我将所有未执行的测试基础架构代码移动到一个项目中。它现在在开发和测试解决方案中。这样,如果开发代码被自动重构,那么它在我的项目中就会发生变化。如果对接口进行了重大更改,它们将在编译期间变为错误。