Azure ruby 테스트를 shell을 이용해 전체 돌리 던 중


단위 테스트가 아닌 통합 테스트에서 에러가 발생


발생한 에러 status 는 401 아예 권한이 없다는 에러


아래는 MOCK 데이터

MOCK_AZURE_SUBSCRIPTION_ID        = 'aa643f05-5b67-4d58-b433-54c2e9131a59'

MOCK_DEFAULT_STORAGE_ACCOUNT_NAME = '8853f441db154b438550a853'

MOCK_AZURE_STORAGE_ACCESS_KEY     = '3e795106-5887-4342-8c73-338facbb09fa'

MOCK_RESOURCE_GROUP_NAME          = '352ec9c1-6dd5-4a24-b11e-21bbe3d712ca'

MOCK_AZURE_TENANT_ID              = 'e441d583-68c5-46b3-bf43-ab49c5f07fed'

MOCK_AZURE_CLIENT_ID              = '62bd3eaa-e231-4e13-8baf-0e2cc8a898a1'

MOCK_AZURE_CLIENT_SECRET          = '0e67d8fc-150e-4cc0-bbf3-087e6c4b9e2a'

MOCK_SSH_PUBLIC_KEY               = 'bar'

MOCK_DEFAULT_SECURITY_GROUP       = 'fake-default-nsg-name'



아래는 통합 테스트  변수 선언 부분

describe Bosh::AzureCloud::Cloud do

  before(:all) do

    @subscription_id                 = ENV['BOSH_AZURE_SUBSCRIPTION_ID']                 || raise("Missing BOSH_AZURE_SUBSCRIPTION_ID")

    @tenant_id                       = ENV['BOSH_AZURE_TENANT_ID']                       || raise("Missing BOSH_AZURE_TENANT_ID")

    @client_id                       = ENV['BOSH_AZURE_CLIENT_ID']                       || raise("Missing BOSH_AZURE_CLIENT_ID")

    @client_secret                   = ENV['BOSH_AZURE_CLIENT_SECRET']                   || raise("Missing BOSH_AZURE_CLIENT_secret")

    @stemcell_id                     = ENV['BOSH_AZURE_STEMCELL_ID']                     || raise("Missing BOSH_AZURE_STEMCELL_ID")

    @ssh_public_key                  = ENV['BOSH_AZURE_SSH_PUBLIC_KEY']                  || raise("Missing BOSH_AZURE_SSH_PUBLIC_KEY")

    @default_security_group          = ENV['BOSH_AZURE_DEFAULT_SECURITY_GROUP']          || raise("Missing BOSH_AZURE_DEFAULT_SECURITY_GROUP")

    @resource_group_name_for_vms     = ENV['BOSH_AZURE_RESOURCE_GROUP_NAME_FOR_VMS']     || raise("Missing BOSH_AZURE_RESOURCE_GROUP_NAME_FOR_VMS")

  end



MOCK 데이터와 통합 테스트 변수 선언 부분의 불일치로 인한 에러


통합 테스트는 실제 변수 값을 넣어 줘야 한다.


테스트의 변수 타입이 시스템 환경 변수를 저장하고 있는 해쉬 객체 타입으로


변수 값 설정 



export BOSH_AZURE_DEFAULT_SECURITY_GROUP=nsg-cf


export BOSH_AZURE_RESOURCE_GROUP_NAME_FOR_VMS=innovation


export BOSH_AZURE_RESOURCE_GROUP_NAME_FOR_NETWORK=innovation


export BOSH_AZURE_PRIMARY_PUBLIC_IP=52.231.37.142


export BOSH_AZURE_STORAGE_ACCOUNT_NAME=boshinnov2


export BOSH_AZURE_VNET_NAME=cf1innov


export BOSH_AZURE_SUBNET_NAME=cf1


export BOSH_AZURE_INSTANCE_TYPE=Standard_A2


...


설정 후 다시 Shell을 실행 하니 성공적으로 완료 되었다.

+ Recent posts