git2r::summary() 从控制台和 RStudio 调用时产生不同的结果
git2r::summary() produces different results when called from console and by RStudio
我正在尝试编写一个 R 包,在 git2r
包的帮助下分析 Apache Pig GitHub repository。我还使用 testthat
包进行单元测试。
我有一个函数,我们称它为 compute()
,它包含如下代码:
repo <- repository("C:\normalized\path\to\apache\pig");
allCommits <- commits(repo);
commitSummary <- capture.output(summary(allCommits[[1]]));
print(commitSummary);
commitSummary
是一个重要的部分,因为我在上面运行几个正则表达式来恢复插入和删除等数据。
问题是,当我从控制台调用 compute()
时,它打印出 Output 1.
但是当我 运行 devtools::test()
从我的单元测试文件调用 compute()
时,它会打印出 Output 2。 (在我写这个问题的过程中,在多次生成 Output 2 之后,它生成了 Output 3。)
当我从控制台 运行 这个问题中的第一个代码块时,它再次打印出 Output 1。
但是,当我将该代码块复制粘贴到测试文件中时,它会打印出 Output 3.
我很困惑。这怎么可能?
我如何确保 git2r::summary()
使用我想要的格式?
输出 1
[1] "Commit: d2de56aad939c7c77324066a6f29cc211e29a077"
[2] "Author: Koji Noguchi <knoguchi@apache.org>"
[3] "When: 2016-12-12 23:07:37"
[4] ""
[5] " PIG-5073: Skip e2e Limit_5 test for Tez (knoguchi)"
[6] " "
[7] " "
[8] " git-svn-id: https://svn.apache.org/repos/asf/pig/trunk@1773899 13f79535-47bb-0310-9956-ffa450edef68"
[9] " "
[10] "2 files changed, 18 insertions, 1 deletions"
[11] "CHANGES.txt | -0 + 2 in 1 hunk"
[12] "test/e2e/pig/tests/nightly.conf | -1 +16 in 2 hunks"
[13] ""
输出 2
[d2de56a] 2016-12-12: PIG-5073: Skip e2e Limit_5 test for Tez (knoguchi)
输出 3
[1] " Length Class Mode " " 1 git_commit S4 "
可能会影响问题清晰度的附加说明
当我加载并调用单元测试文件中调用 compute()
的函数时,它会打印出 Output 1。从设置为测试文件夹的工作目录和完全相同的参数调用 compute()
相同。
让事情变得更加混乱,直到最近 devtools::test()
产生了 输出 1,然后切换到 输出 3 在确定 输出 2.
之前
CRAN 的 git2r::summary(object, ...)
文档列出了以下参数:
object
The commit object.
...
Additional arguments affecting the summary produced.
无法找到 ...
的可接受值。
事实证明,可能存在某种与名称空间相关的竞争条件,因为基 R 中已经有一个 summary()
函数(和 probably some other packages),这解释了为什么有 3 个不同的输出。
我每次都换
summary(commitObject)
进入
git2r::summary(commitObject)
一切似乎又恢复正常了。
我正在尝试编写一个 R 包,在 git2r
包的帮助下分析 Apache Pig GitHub repository。我还使用 testthat
包进行单元测试。
我有一个函数,我们称它为 compute()
,它包含如下代码:
repo <- repository("C:\normalized\path\to\apache\pig");
allCommits <- commits(repo);
commitSummary <- capture.output(summary(allCommits[[1]]));
print(commitSummary);
commitSummary
是一个重要的部分,因为我在上面运行几个正则表达式来恢复插入和删除等数据。
问题是,当我从控制台调用 compute()
时,它打印出 Output 1.
但是当我 运行 devtools::test()
从我的单元测试文件调用 compute()
时,它会打印出 Output 2。 (在我写这个问题的过程中,在多次生成 Output 2 之后,它生成了 Output 3。)
当我从控制台 运行 这个问题中的第一个代码块时,它再次打印出 Output 1。
但是,当我将该代码块复制粘贴到测试文件中时,它会打印出 Output 3.
我很困惑。这怎么可能?
我如何确保 git2r::summary()
使用我想要的格式?
输出 1
[1] "Commit: d2de56aad939c7c77324066a6f29cc211e29a077"
[2] "Author: Koji Noguchi <knoguchi@apache.org>"
[3] "When: 2016-12-12 23:07:37"
[4] ""
[5] " PIG-5073: Skip e2e Limit_5 test for Tez (knoguchi)"
[6] " "
[7] " "
[8] " git-svn-id: https://svn.apache.org/repos/asf/pig/trunk@1773899 13f79535-47bb-0310-9956-ffa450edef68"
[9] " "
[10] "2 files changed, 18 insertions, 1 deletions"
[11] "CHANGES.txt | -0 + 2 in 1 hunk"
[12] "test/e2e/pig/tests/nightly.conf | -1 +16 in 2 hunks"
[13] ""
输出 2
[d2de56a] 2016-12-12: PIG-5073: Skip e2e Limit_5 test for Tez (knoguchi)
输出 3
[1] " Length Class Mode " " 1 git_commit S4 "
可能会影响问题清晰度的附加说明
当我加载并调用单元测试文件中调用
compute()
的函数时,它会打印出 Output 1。从设置为测试文件夹的工作目录和完全相同的参数调用compute()
相同。让事情变得更加混乱,直到最近
devtools::test()
产生了 输出 1,然后切换到 输出 3 在确定 输出 2. 之前
CRAN 的
git2r::summary(object, ...)
文档列出了以下参数:object
The commit object....
Additional arguments affecting the summary produced.
无法找到 ...
的可接受值。
事实证明,可能存在某种与名称空间相关的竞争条件,因为基 R 中已经有一个 summary()
函数(和 probably some other packages),这解释了为什么有 3 个不同的输出。
我每次都换
summary(commitObject)
进入
git2r::summary(commitObject)
一切似乎又恢复正常了。