那么目标是什么:
测试隔离意味着测试代码无法与源访问,因为他可能会导致安全问题并导致漏洞。
我们可以扩展和推广测试框架,而不仅仅是测试特定来源。
无论源更改
由于隔离,我们可以尝试针对各种源代码分支运行相同的测试框架
测试代码,运行时或溢出的性能问题不会直接影响测试运行,因为我们可以轻松地恢复到性能良好的测试框架版本。
问题:
测试代码和源代码应该在同一个分支中吗?我们如何设置它?那怎么会让我们说颠覆,什么是利弊?
答案 0 :(得分:1)
问题有点不精确 - 我假设您的问题涉及单元测试代码,而不是验收测试,性能测试等。
首先要考虑的是测试代码与被测代码之间存在紧密耦合。你需要管理这种依赖;你如何管理它在很大程度上取决于你的发展战略。如果您使用分支来分隔功能或版本,我会将该分支的测试代码放在同一分支中 - 您不能指望它可以处理来自另一个分支的代码。为测试代码添加单独的分支会使事情变得更复杂,而不必增加任何好处。
其次 - 希望显然 - 您需要管理依赖项。您的测试代码取决于测试中的代码;被测代码不应该依赖于测试代码。使用JDepend或NDepend等工具可以监视这些依赖关系。从测试代码中明确管理依赖项通常是个好主意 - 如果您发现所有测试都依赖于代码中测试中的单个类,那么如果出现问题,该依赖项可能会破坏每个测试。
现在,为了回答您的具体问题,我将假设您在SVN中有(主要)功能的分支,并且您已经设置了标准项目结构,
\src
\app
\test
应用程序代码位于“app”文件夹中; “test”目录中的测试代码。
在这种情况下,您的SVN可能是:
\trunk
\app
\com.me.app.views
\com.me.app.models
\com.me.app.controllers
\test
\com.me.app.tests.views
\com.me.app.tests.models
\com.me.app.tests.controllers
\branches
\feature1
\app
\com.me.app.views
\com.me.app.models
\com.me.app.controllers
\test
\com.me.app.tests.views
\com.me.app.tests.models
\com.me.app.tests.controllers
\feature2
\app
\com.me.app.views
\com.me.app.models
\com.me.app.controllers
\test
\com.me.app.tests.views
\com.me.app.tests.models
\com.me.app.tests.controllers