git2r::summary() выдает разные результаты при вызове из консоли и из RStudio
Я пытаюсь написать пакет R, который анализирует хранилище Apache Pig GitHub с помощью git2r
пакет. Я также использую testthat
пакет для юнит-тестирования.
У меня есть функция, давайте назовем ее compute()
, который содержит код в соответствии с:
repo <- repository("C:\normalized\path\to\apache\pig");
allCommits <- commits(repo);
commitSummary <- capture.output(summary(allCommits[[1]]));
print(commitSummary);
commitSummary
является важной частью, потому что я использую несколько регулярных выражений для восстановления данных, таких как вставки и удаления.
Проблема в том, когда я звоню compute()
из консоли выводится вывод 1.
Но когда compute()
вызывается из моего файла модульного теста при запуске devtools::test()
выводит вывод 2. (И в процессе написания этого вопроса, после того, как я несколько раз произвел Output 2, он выполнил Output 3.)
Когда я запускаю первый кодовый блок в этом вопросе из консоли, он снова выводит вывод 1.
Однако, когда я копирую и вставляю этот кодовый блок в тестовый файл, он выводит вывод 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()
из файла модульного теста выводится вывод 1. То же самое для звонкаcompute()
из рабочего каталога установить в тестовую папку и точно такие же аргументы.Чтобы сделать вещи более запутанными, вплоть до совсем недавно
devtools::test()
произвел Выход 1, затем он переключился на Выход 3 перед установкой на Выход 2.Документация CRAN для
git2r::summary(object, ...)
перечисляет следующие аргументы:object
Объект коммита....
Дополнительные аргументы, влияющие на резюме производится.
Принятые значения ...
нигде не найти
1 ответ
Оказывается, возможно, происходит какое-то состояние гонки, связанное с пространством имен, поскольку уже существует summary()
функция в базе R (и, возможно, в некоторых других пакетах), которая объясняет, почему было 3 разных выхода.
Я просто изменил каждый
summary(commitObject)
в
git2r::summary(commitObject)
и все, кажется, снова работает.