我们正在开发在年内有主要和次要版本的软件。我们编写测试代码以允许Travis-CL自动化测试。我们希望有一种机制来过滤掉软件最终版本中的所有测试代码。可以使用git标签吗?标签将应用于各个提交。
理想情况下可用的场景如下:
git checkout release-2016-01 --tag test-code
包含已标记为测试代码的提交。
我不确定这种情况的最佳做法是什么,以及git如何支持这种做法。
答案 0 :(得分:0)
有很多方法可以解决这个问题。
第一种方法是你的建议的精美版本。
您可以拥有发布分支和其他测试提交,每个测试提交都会被标记。
所以你的git树看起来像这样:
---O---O---O---O---O---O--- Release branch.
\ \
O O
test-2016-01 test-2016-02
因此,每次运行测试时,他们都会针对标记为test-<release id>
另一种方法是,编写测试代码,提交它,运行测试,然后使用测试代码为补丁应用反向差异(这非常难看)。
---O---O---T---T'
其中T是您的测试提交和T&#39;是不是反过来了。
第三种方法是,将测试代码和生产代码保存在单独的回购中,假设您没有为了测试而修改任何生产代码。如果是的话,你并没有真正测试正确的事情......
第四种也许是最好的方法是将测试和测试框架/代码留在主回购中。如果你必须重新构建代码/ repo以使其更加模块化以进行测试,那么这是一个很好的时间投入。