Я знаю о этом вопросе (и ответах), но, несмотря на все предложенные варианты, я все еще застрял.
У меня есть решение с несколькими проектами, но для этого конкретного случая позвольте сказать, что у меня есть мой ExampleProjectA
и соответствующий проект unit test ExampleProjectATest
. Первый добавлен в качестве ссылки на тестовый проект - не через Visual Studio "Project References"
, а как ссылку на DLL (что-то вроде "..\Path\$(Config)\ExampleProjectA.dll"
) - это связано с созданием требований к серверу в нашей компании, но проблема также существовало, когда мы все еще имели "Project References"
.
- Построение, а затем запуск одного unit test отлично работает
- Изменение только одной буквы в unit test, а затем запуск тестового запуска всегда приводит к восстановлению
ExampleProjectA
, хотя это не обязательно. - Настройка всех (было всего несколько) файлов в
ExampleProjectA
из "Копировать всегда" в "Копировать, если новый" в их соответствующих свойствах не помогла - Проверка флажка под
Tools => Options => Projects and Solutions => Build an Run
(см. ниже) также ничего не изменила
Чтобы узнать, есть ли какая-либо дополнительная информация, я изменил параметры вывода сборки на диагностику. Каждый раз при восстановлении ExampleProjectA
, первая строка в выходных окнах
1 > Project 'ExampleProjectATest' не обновляется. Входной файл 'c:\tfs\mysolution-dev\exampleprojectatest\myfolder\namegeneratortest.cs' изменяется после выходного файла 'C:\tfs\mysolution-dev\exampleprojectatest\bin\Release\exampleprojectatest.pdb'.
Имя класса, записанное в окно (например, namegeneratortest.cs
), изменяется в зависимости от того, какой файл теста я меняю.
Не знаю, почему это сообщение появляется, но следующим шагом было отключить отладочную информацию, как показано ниже в разделе Project properties => Build => Advanced => Output => Debug Info => None
:
Тем не менее, ничего не изменилось.
Еще одна вещь, которую я пробовал, - проверить временные метки файлов, содержащихся в моей папке с решениями (так как был случай, когда у пользователя был файл с будущей меткой времени - см. связанную запись) - безрезультатно.
Последнее, что я пробовал, - изменить настройки сборки в Configuration Manager
на другую целевую платформу - некоторые настройки не позволят мне успешно создавать решение, некоторые другие настройки, но описанная проблема сохраняется, поэтому никаких изменений.
Поведение аналогично (не то же самое), как с Visual Studio Test Runner, так и с предоставленным ReSharper.
Тест-драйв Visual Studio
Project 'ExampleProject' не обновляется. Входной файл 'C:\tfs\mysolution-dev\exampleprojecta\Views\Shared\someview.cshtml' изменяется после выходного файла 'C:\tfs\mysolution-dev\exampleprojecta\bin\exampleprojecta.pdb'.
ReSharper Test Runner
Project 'ExampleProjectATest' не обновляется. Входной файл 'c:\tfs\mysolution-dev\exampleprojectatest\myfolder\namegeneratortest.cs' изменяется после выходного файла 'C:\tfs\mysolution-dev\exampleprojectatest\bin\Release\exampleprojectatest.pdb'.
Я использую Visual Studio 2013 Premium Edition с ReSharper 8.2 и последние обновления, проекты в нашем файле решений находятся на С#.
Обновление
Чтобы уточнить - первая строка в окне вывода показывает, что тестовый проект нужно перестроить - это нормально. Однако следующие строки указывают, что также необходимо перестроить ExampleProjectA
, что не обязательно. Последующие сообщения в окне вывода также показывают, что другие проекты (ссылки из ExampleProjectA
должны быть перестроены.
Обновление 2
Несмотря на установку Update 4, ничего не изменилось.