Невозможно собрать консольное приложение .NET Core в Linux - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть этот файл спецификации, который пытается запустить скрипт, который будет запускать программу dotnet cli:

require 'spec_helper'

RSpec.describe 'Integration test', type: :aruba do
  let(:command) { run "dotnet-test" }

  it "test" do
    command.write("test\n")
    stop_all_commands
    expect(command.output).to end_with("success\n")
  end
end

dotnet-test скрипт:

dotnet run --project ../SomeProject/src/SomeProject.Console/SomeProject.Console.csproj -- $1

Но я получаю ошибку:

Failure/Error: expect(command.output).to end_with("success\n")
       expected "MSBUILD : error MSB1009: Project file does not exist.\nSwitch: ../SomeProject/src/SomeProject.Console/SomeProject.Console.csproj\n\nThe build failed. Please fix the build errors and run again.\n" to end with "success\n"

Но если я запускаю скрипт из этого каталога, тогда программа работает нормально. Не могу понять, в чем может быть разница между ними. Помощь очень ценится.

1 Ответ

0 голосов
/ 10 ноября 2018

Похоже, что скрипт, который вы пытаетесь запустить, зависит от относительного пути для правильного выполнения. В этом случае вам может потребоваться cd в пределах вашей спецификации.

См. https://relishapp.com/cucumber/aruba/docs/filesystem/change-current-working-directory

Попробуйте использовать абсолютный путь к файлу вместо

../SomeProject/src/SomeProject.Console/SomeProject.Console.csproj

Можете ли вы указать полный путь, например:

/Users/yourusername/pathtosomeproject/SomeProject/src/SomeProject.Console/SomeProject.Console.csproj

Очевидно, вам нужно заменить pathtosomeproject туда, где он на самом деле находится.

...