2014-02-10 2 views
1

Я получаю странную ошибку на сервере сборки, это НЕ происходит локально.Ошибка SpecFlow на сервере сборки

Error during file generation. The target file 'C:...\AcceptanceTest\Features\HelloWorld.feature.cs' is read-only, but different from the transformation result. This problem can be a sign of an inconsistent source code package. Compile and check-in the current version of the file from the development environment or remove the read-only flag from the generation result. To compile a solution that contains messaging project on a build server, you can also exclude the messaging project from the build-server solution or set the msbuild project parameter to 'true' in the messaging project file.

Я не уверен, что нужно сделать, чтобы это исправить, я не проект «обмена сообщениями» (или знать, что имеется в виду тоже). А код является последней

Это полное сообщение (некоторые имена папок были затемненное):

13>C:\Builds\2\Services\PService\src\packages\SpecRun.Excel.1.1.0\tools\TechTalk.SpecFlow-buildfix.targets(47,5): error : Error during file generation. The target file 'C:\Builds\2\Services\PService\src\PService\Test\PService.AcceptanceTest\Features\HelloWorld.feature.cs' is read-only, but different from the transformation result. This problem can be a sign of an inconsistent source code package. Compile and check-in the current version of the file from the development environment or remove the read-only flag from the generation result. To compile a solution that contains messaging project on a build server, you can also exclude the messaging project from the build-server solution or set the msbuild project parameter to 'true' in the messaging project file. [C:\Builds\2\Services\PService\src\PService\Test\PService.AcceptanceTest\PService.AcceptanceTest.csproj] 13>C:\Builds\2\Services\PService\src\packages\SpecRun.Excel.1.1.0\tools\TechTalk.SpecFlow-buildfix.targets(47,5): error : Could not find file 'C:\Users\tfsbuild\AppData\Local\Temp\tmpPWithData.feature.xlsx.cs'. [C:\Builds\2\Services\PService\src\PService\Test\PService.AcceptanceTest\PService.AcceptanceTest.csproj] 13>C:\Builds\2\Services\PService\src\PService\Test\PService.AcceptanceTest\Features\PWithData.feature.xlsx : error : Generation error: Could not find file 'C:\Users\tfsbuild\AppData\Local\Temp\tmpPWithData.feature.xlsx.cs'. [C:\Builds\2\Services\PService\src\PService\Test\PService.AcceptanceTest\PService.AcceptanceTest.csproj]

ответ

0

Я не уверен, что проектсообщений относится, это гавань то, что я» t видел раньше.

Однако ошибка читается так, как если бы проблема возникла из-за проблемы с генерацией *.feature.cs из файла *.feature, но я смущен, почему это должно происходить на сервере сборки. Обычно генерация *.feature.cs происходит в среде IDE при сохранении файла *.feature. Это проверяется и с некоторыми системами контроля версий (VCS) вы можете получить статус файла только для чтения.

Ваша ошибка читается, поскольку сервер сборки пытается сгенерировать файл *.feature.cs и не может перезаписать его.

Некоторые вещи для проверки;

  • Какой VCS вы используете? Оставляет ли файл с проверкой только в режиме «только для чтения»?
  • Как вы создаете файлы на сервере сборки? Есть ли специальный шаг, или это просто компиляция?
  • Можете ли вы воспроизвести эту ошибку на вашем компьютере, установив *.feature.cs в режиме только для чтения и запустив тот же скрипт сборки на вашем локальном компьютере?

Удачи.

1

Удалить HelloWorld.feature.cs от источника управления.

TFS будет проверять файлы как доступные только для чтения во время сборки, и поэтому SpecFlow не может повторно сгенерировать файл, поскольку он уже существует, а SpecFlow не перезаписывает файлы только для чтения.

Я создал новый запрос для SpecFlow, чтобы автоматически не добавлять файл к исходному элементу управления здесь: https://github.com/techtalk/SpecFlow/issues/592

Смежные вопросы