Невозможно создать консольное приложение .NET Core в Linux

У меня есть этот файл спецификации, который пытается запустить скрипт, который будет запускать программу 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"

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

когда вы говорите «запустить сценарий из этого каталога», что именно вы запускаете и является ли этот сценарий рубиновым?

lacostenycoder 10.11.2018 13:39

@lacostenycoder под этим я подразумеваю, когда я просто запускаю сценарий dotnet-test с терминала из каталога, он работает нормально, но когда тот же сценарий выполняется из Aruba, он выдает эту ошибку. Надеюсь, это объясняет.

lbrahim 10.11.2018 14:03

вы можете выложить код, который у вас есть в dotnet-test?

lacostenycoder 10.11.2018 15:10
dotnet run --project ../SomeProject/src/SomeProject.Console/SomeProject.Console.c‌​sproj -- $1
lbrahim 10.11.2018 15:17
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
0
4
220
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, сценарий, который вы пытаетесь запустить, полагается на относительный путь для правильного выполнения. В этом случае вам может потребоваться 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 на то место, где он фактически находится.

Я попытался изменить его на: codehare.io/a3Nd4m, но теперь я получаю сообщение об ошибке, что let не разрешен в описании

lbrahim 10.11.2018 14:26

Я не являюсь пользователем Linux, но, может быть, я могу изменить способ ссылки на путь к файлу проекта?

lbrahim 10.11.2018 14:56

Другие вопросы по теме