似乎最新的Android SDK工具仍然不能正确支持包含链接库项目的应用程序的测试.
我有一个项目,具有以下设置:
TestLib(android库项目)< - TestMain(android项目)< - TestMainTest(android单元测试项目)
我在eclipse中创建了所有这些项目,然后用于android update (test-/lib-)project ...生成build.xmlet.人.
一旦你在TestMain(InheritAddition.java在我的例子中)中有一个继承自TestLib(Addition.java)中的类并且你想在单元test(InheritAdditionTest.java)中引用这个类的类,问题就会开始.
public class Addition {
public int add2(int o1, int o2) {
return o1 + o2;
}
}
Run Code Online (Sandbox Code Playgroud)
public class InheritAddition extends Addition {
public int sub(int p1, int p2) {
return p1 - p2;
}
}
Run Code Online (Sandbox Code Playgroud)
public class InheritAdditionTest extends AndroidTestCase {
public void testSub() {
Assert.assertEquals(2, new InheritAddition().sub(3, 1));
}
}
Run Code Online (Sandbox Code Playgroud)
在命令行上构建时,结果如下:
W/ClassPathPackageInfoSource(14871): …
我有以下 git 存储库
我合并成
所以这看起来像
我已按照http://jasonkarns.com/blog/merge-two-git-repositories-into-one/上的说明进行操作以实现此目的。这本质上意味着
git remote add -f repoA /path/to/repoA
git merge -s ours --no-commit repoA/master
git read-tree --prefix=dirA/ -u repoA/master
git ci -m "merging repoA into dirA"
...
Run Code Online (Sandbox Code Playgroud)
但是现在文件的历史记录不再连接了
git log --follow dirA/pom.xml
Run Code Online (Sandbox Code Playgroud)
什么也没显示。
然而,
git log --follow pom.xml
Run Code Online (Sandbox Code Playgroud)
确实显示该文件的正确(旧)历史记录。这还不够好,因为没有任何工具(例如 eclipse 或其他 git 客户端)能够显示完整的历史记录。
更糟糕的是,合并的存储库上已经有新的提交,因此再次进行合并并不是真正的选择(我现在知道我应该在进行合并之前进入)repoA/*。repoA/dirA
我考虑过插入一个提交,该提交将在 repoAll 上的初始合并之前进行移动,但这需要我对所有更改(现在是 100+)进行变基并解决更改。
问题/解决方案Git 日志在执行读取树合并后显示很少,以及如何重写历史记录,以便所有文件(除了我已经移动的文件)都位于子目录中?似乎只适用于整个存储库,不适用于特定的子目录(或者至少如果您已经在 repoAll 上有了新的提交)。
我认为应该有某种方法来重写特定子目录(例如 dirA)的历史记录,但我似乎不知道如何重写。