Я хочу использовать статическую переменную в качестве параметра к DeploymentItem
на модульном тесте MSTest, но не кажется, что я могу сделать так. Существует файл XSL, который должен быть скопирован наряду с файлом DLL, когда модульный тест работает, и я определил местоположение как
private static string _xslPath = Path.Combine("MyProjectDir", "transform.xsl");
Однако, когда я затем делаю следующее:
[TestMethod]
[DeploymentItem(DLL)]
[DeploymentItem(_xslPath)]
public void XmlToResultsTest() { }
Я получаю эту ошибку сборки:
Аргументом атрибута должно быть константное выражение, typeof выражение или выражение создания массива типа параметра атрибута
Хорошо хорошо прекрасный, но это просто кажется настолько грязным для сборки пути самостоятельно:
[DeploymentItem(@"MyProjectDir\transform.xsl")]
Я чрезмерно требователен здесь в отношении желания использовать Path.Combine
? Действительно ли там другой альтернативен, я отсутствую? Я предполагаю, что мог просто поместить файл XSL в корневой каталог решения, таким образом, я не должен передавать в каталоге проекта как часть пути.
Атрибуты могут использовать только постоянные строки, поэтому нет: вы не можете сделать это (вам придется использовать предварительно комбинированную версию, или буквальное объединение - не PATHCORMBINE
)) Отказ Вы можете использовать параметры развертывания тестового проекта тоже (Testrunconfig?), Но, честно говоря, я предпочитаю использовать Nunit подход только что маркировки файла (в CSPROJ, как обычно) для развертывания. Я еще предстоит понять, почему MS добавил отдельный способ определить это ...