Apakah ada cara untuk mengisolasi aplikasi dari variabel lingkungan untuk menguji kode?

0

Saya sedang mengembangkan aplikasi pada Windows yang memanfaatkan DLL file yang tersedia di sistem PATH variabel. Itu DLL ada di saya saya PATH untuk lingkungan pengembangan saya. Namun aplikasi itu sendiri portabel yang dikirimkan dengan dependensinya sendiri. Apakah ada cara untuk mengaburkan variabel lingkungan dari aplikasi / proses sehingga saya dapat menguji kode saya untuk portabilitas tanpa harus memodifikasi variabel global?

hazrmard
sumber
Anda dapat membuat pengguna lain untuk tujuan pengujian, masuk ke akun lain dan coba jika itu berhasil. Solusi lain yang lebih lengkap adalah membuat mesin virtual dengan instalasi windows baru dan menguji semuanya
fernando.reyes
1
Gunakan salah satu VM Windows Microsoft gratis
Ramhound
mungkin solusi terbaik adalah mengejek, asalkan lingkungan dev Anda sesuai: stackoverflow.com/questions/2665812/what-is-mocking
Frank Thomas

Jawaban:

1

Buat file bat / cmd dan timpa PATH kemudian luncurkan aplikasi Anda dari file bat / cmd yang sama

@echo off

Path=C:\TestPath

REM test it that is was overridden 
echo %Path%

REM Lunch your app below
c:\path\to\your\app.exe
Alex
sumber
0

Jawaban Alex sangat membantu. Saya mengonversinya menjadi fungsi PowerShell yang dapat saya tambahkan ke $profile jadi selalu tersedia:

function sandbox {
    Write-Output "$args"
    $tempPATH = $env:PATH
    $env:PATH = ""
    if ("$args"[0] -eq '"') { iex "& $args" }
    else { iex "$args" }
    $env:PATH = $tempPATH
}

Jadi sekarang, setiap kali saya menelepon sandbox SOME_COMMAND, fungsinya kosong PATH, menjalankan perintah, dan mengembalikan variabel kembali.

hazrmard
sumber