Как я могу получить список связанных идентификаторов рабочих элементов для набора рабочих элементов?
- Предпочтительны запросы, размещенные в Excel. Образец API приемлем.
- Допускается прямой запрос к таблице БД (конечно, только для чтения и не поддерживается!)
Заранее большое спасибо! -Зефан
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
ОБНОВЛЕНИЕ: нет ответов на мой первоначальный вопрос, поэтому расширяем область приемлемых ответов следующим образом:
Ответ для TFS2015 (миграция очень скоро) или TFS2013 (потенциально полезный для TFS2015) предпочтительнее TFS2010
Кодирование приемлемо, если есть какие-либо API или командлеты PowerShell (MS или сообщество).
Допустимо прямое подключение (только для чтения!) к таблицам БД TFS (исходные таблицы и имена таблиц связанных связей). Да, прямые ссылки на таблицы БД TFS ОЧЕНЬ не поддерживаются, доступны только для чтения и «НА ВАШ СОБСТВЕННЫЙ РИСК». Все еще лучше, чем вручную копировать/вставлять данные или восстанавливать список ссылок в Excel.
ИСХОДНЫЙ ВОПРОС И ДЕТАЛИ
Моя команда использует TFS2010 (скоро 2013 или надеюсь 2015) и VS2010-2015. Мне нужно поддерживать отчеты о прослеживаемости и анализировать/количественно оценивать наше покрытие ~300 рабочих элементов Test Case, связанных с ~400 рабочими элементами Requirement. Запросы Direct Link и Tree близки, но не дают связанных ссылок в той же строке, что и родительский рабочий элемент. Заранее большое спасибо за ваши предложения и любые связанные фрагменты кода.
Пример:
3 тестовых примера (Тест1, Тест2, Тест3)
4 Требования (Требование 1, Требование 2, Требование 3, Требование 4)
- Для простоты давайте просто используем идентификаторы рабочих элементов TFS для представления каждого TestN и ReqN. На самом деле у меня есть ключевое слово для определения моих требований проверки (отдельно от тысяч других требований в этом командном проекте). Единственные контрольные примеры WI, которые меня интересуют для решения этой проблемы, связаны с возможностью отслеживания одного или нескольких требований валидации.
Сценарии:
- 1:1 (простой) Test1 связан с Req1
- 1:2 (1:n) Test2 связан с Req2 и Req3
- 2:1 (n:1) Test3 (и Test2) связаны с Req3
- 0:1 (Requirement missing Test coverage) Req4 has no test case links
- I have a good coverage gap query by creating a Direct Link query for all Requirements then set "linking filters" to Only return items that do not have the specified links.
Желаемый результат (все тесты со списком связанных рабочих элементов):
|Test1 | Req1 |
|Test2 | Req2, Req3 |
|Test3 | Req3 |
Для строки № 2 я согласен с другими разделителями или даже со всем списком, используя тот же разделитель (.CSV или TAB с разделителями). Пропустите прямо сейчас, чтобы ответить, если у вас есть аккуратный ответ. Если нет, то я добавил значительную информацию о СООТВЕТСТВУЮЩИХ ИССЛЕДОВАНИЯХ ниже, чтобы помочь запустить идею, которая соответствует потребности! Тем более, что за последние 5 лет это не было открыто решено :-).
СВЯЗАННЫЕ ИССЛЕДОВАНИЯ (долгое, но может быть полезным)
1. Запросы Visual Studio
Плоские запросы должны поддерживать готовый список связанных элементов... но это не так. Поле RelatedLinkCount удобно для того, чтобы узнать, есть ли какие-либо ссылки для отслеживания, но это все для простых запросов.
Запросы прямых ссылок дают список всех прямых ссылок, но соответствующие идентификаторы находятся в строках ниже родительского рабочего элемента. Я серьезно рассматриваю возможность создания формулы для просмотра следующих X строк для создания списка идентификаторов, но это было бы хрупким, особенно когда более 3 требований связаны с одним и тем же тестом. Тем не менее может решить 80% моих потребностей в отслеживании.
Запросы дерева также показывают ссылки, но в разных строках. Кроме того, они, как правило, следуют только одному типу ссылок. В идеале мне понадобится список пользовательских требований, связанных с функциональными требованиями, связанными с тестовыми примерами.
2. Инструменты/плагины
- SmartExcel4TFS (eDEVTech, http://www.modernrequirements.com/smartexcel4tfs/) has 3 reports it supports, but none get me the core data I need in easily used format. At least it is FREE if you have an MSDN Premium subscription.
- Requirements to Tests Trace Matrix is super-interesting. Alass, right now I need to go the other way (Requirements linked to a given test case). Also it merges cells and has sub-sections that are hard to manipulate I think. (I may revisit this option though.)
- Отчет Матрица отслеживания пересечений НАМНОГО слишком широк для полной сетки 300 x 400 :-O.
- Матрица декомпозиции рабочих элементов также не дала мне желаемого содержимого. (хотя, честно говоря, я забыл этот макет отчета, когда проверял его ~ 1 месяц назад.)
3. Вызовы API TFS
На самом деле я избегал этого пути в пользу собственного решения Excel... но если я могу получить пример кода Excel VBA (или другого кода со ссылкой на вызов в Excel), я могу пойти по этому пути. На данный момент у меня нет времени копаться в своем собственном... но это было бы круто, если предположить, что производительность приемлема.
Соответствующие фрагменты API/кода:
Получение результатов TFS из древовидного запроса (Blogs.msdn.com 2012.02.22). Похоже, это даст мне нужные мне данные, но их нет в Excel, поэтому мне нужен какой-то пример моста. вызывая это в Excel.
Получение работы элементы и связанные с ними рабочие элементы в одном запросе с использованием API-интерфейсов TFS (stackoverflow.com, 2012.01.12). Также выглядит многообещающе, но не связано с Excel. Дает подсказки для вложенных ссылок 2-го и 3-го уровня и соображения производительности (не делайте повторный вызов для каждого возвращаемого элемента!)
Получение рабочих элементов с помощью Team Foundation Серверный API (pwee167.github.io 2012.09.18) — превосходно написанная вступительная запись в блоге, посвященная созданию приложения (ASP.Net MVC3), которое вызывает API-интерфейсы TFS для выполнения запросов Flat или Tree. Начните здесь, если пишите С# (что я мог бы сделать, но у меня нет времени/оправдания, если только это не простой пример для интеграции с Excel).
Как я могу запрашивать рабочие элементы и их связанные наборы изменений в TFS? (stackoverflow.com 2011.05.10) - мне не нужны наборы изменений, но у этого есть код VB для создания экземпляра нового TfsTeamProjectCollection, который может работать непосредственно в Excel VBA (при условии, что правильная ссылка найдена и добавлена) var projectCollection = new TfsTeamProjectCollection( новый Uri("http://localhost:8080/tfs"), новый UICredentialsProvider( ));
Хорошо, это все, что я собрал по этой проблеме. Пожалуйста, помогите внести свой вклад с отсутствующим волшебным инструментом/фрагментом или следуйте приведенной выше информации, чтобы создать последний фрагмент, на прототип и отладку которого у меня не было времени. Спасибо заранее!! -Зефан