我制作了一个Rakefile来构建我的ASP.NET解决方案并运行测试用例。 (我的Rakefile需要Albacore,我正在使用Windows) 在 TeamCity 中,我使用跑步者类型创建了一个构建步骤:Rake。
在Team City中运行构建步骤时,我收到此错误:
在工作目录中找不到Gemfile:'C:\ TeamCity \ buildAgent \ work \ 78c29356760be3bf'。 如果Gemfile位于其他目录中,请使用系统属性指定Gemfile相对路径:system.teamcity.rake.runner.custom.gemfile
以下是我的设置:
这是我的Rakefile:
require 'albacore'
clr_version = "v4.0.30319"
framework = File.join(ENV['windir'].dup, 'Microsoft.NET', 'Framework64', clr_version)
@solution = "../../Codex.Repository.sln"
@bin_folder = "App.Repositor
y/bin"
@obj_folder = "App.Repository/obj"
@test_bin = "UnitTestsRepository/bin"
@test_obj = "UnitTestsRepository/obj"
@tests_dll = "UnitTests.Repository/bin/Release/Codex.Repository.UnitTests.dll"
@nuget_packages = "../../packages"
@msbuild = File.join(framework, "msbuild.exe")
@vstest = File.join(ENV['VS12COMNIDE'].dup, 'CommonExtensions/Microsoft/TestWindow/vstest.console.exe')
task :default => [:clean, :restore, :build]
task :tests => [:unittest]
desc "Remove all binaries and NuGet packages"
task :clean do
if(Dir.exists?(@nuget_packages))
sh "rd \"#{@nuget_packages}\" /s /q"
end
if(Dir.exists?(@bin_folder))
sh "rd \"#{@bin_folder}\" /s /q"
end
if(Dir.exists?(@obj_folder))
sh "rd \"#{@obj_folder}\" /s /q"
end
if(Dir.exists?(@test_bin))
sh "rd \"#{@test_bin}\" /s /q"
end
if(Dir.exists?(@test_obj))
sh "rd \"#{@test_obj}\" /s /q"
end
end
desc "Restoring NuGet packages"
task :restore do
sh "nuget restore \"#{@solution}\""
end
desc "Building the solution"
task :build do
sh "\"#{@msbuild}\" \"#{@solution}\" /p:VisualStudioVersion=12.0;Configuration=Release"
end
desc "Running the unit tests"
task :unittest do
sh "\"#{@vstest}\" \"#{@tests_dll}\""
end
我该怎么办?我在哪里可以添加Gemfiles?
答案 0 :(得分:0)
Gemfile
是Bundler
使用的标准资源,用于将gem依赖项放入当前文件夹并围绕它们创建包装器:
http://bundler.io/
您需要在项目根文件夹中创建名为Gemfile
的文件。定义gem的源代码,Bundler将从那里安装依赖项。
在步骤3中,您标记了捆绑器检查。这就是你的项目需要它的原因。如果您不需要,只需取消选中即可。