У меня есть хранимая процедура, которая делает что-то вроде:
IF @Param = '1'
SELECT HT.HeaderKey, HT.Description,
(SELECT SUM(E1) -- E1 is actually a complex expression
FROM DetailTable DT INNER JOIN ...
INNER JOIN ...
INNER JOIN ...
WHERE DT.HeaderKey = HT.HeaderKey)
FROM HeaderTable HT
ELSE IF @Param = '2'
SELECT HT.HeaderKey, HT.Description,
(SELECT SUM(E2) -- E2 is yet another complex expression
FROM DetailTable DT INNER JOIN ... -- Here, DetailTable is not
INNER JOIN ... -- joined to the same tables
INNER JOIN ... -- as in the first case
WHERE DT.HeaderKey = HT.HeaderKey)
FROM HeaderTable HT
-- Etc. There are five cases.
Я хотел бы, чтобы сократил запрос до следующего:
SELECT HT.HeaderKey, HT.Description,
CASE @Param
WHEN '1'
(SELECT SUM(E1)
FROM DetailTable DT INNER JOIN ...
INNER JOIN ...
INNER JOIN ...
WHERE DT.HeaderKey = HT.HeaderKey)
WHEN '2'
(SELECT SUM(E2)
FROM DetailTable DT INNER JOIN ...
INNER JOIN ...
INNER JOIN ...
WHERE DT.HeaderKey = HT.HeaderKey)
-- Etc.
ELSE 0
END
FROM HeaderTable HT
Однако, Я нашел несколько положительных отзывов о Bullseye и могу бесплатно использовать инструмент покрытия кода MS. Цена на Bullseye не ...
Мне нужно выбрать инструмент покрытия кода между Bullseye и инструментом покрытия кода MS. Я нашел несколько положительных отзывов для Bullseye , и я могу использовать инструмент покрытия кода MS бесплатно . Цена на Bullseye не так велика (800 долларов за 1 копию для покупки и 100 долларов за 1 копию + 1 год на последующие годы), поэтому лицензирование некоторых копий Bullseye не составит проблемы.
Однако, если инструмент покрытия кода MS могу дать все, что дает Bullseye, мне (моей компании) не нужно тратить лишние деньги, и если Bullseye лучше инструментов MS с точки зрения простоты использования, интеграции инструментов или чего-то еще, я готов заплатить за Bullseye.
Мы будем использовать gtest для модульного тестирования, поэтому простота интеграции с gtest должна стать важным фактором для принятия решения. Мы также используем TFS (Team Foundation Server), поэтому интеграция с TFS может быть еще одним фактором.
Мы разрабатываем кросс-платформенный код, но для покрытия кода мы рассматриваем только среду Windows. Код реализован на C ++.
Как вы думаете? Можете ли вы поделиться своим опытом использования инструмента покрытия кода MS или Bullseye?