Bagaimana cara melewatkan properti -D System saat menguji di Eclipse?

94

Saya mengembangkan di Eclipse di Windows dan Kode diterapkan di Unix. Saya mengambil nilai properti sistem menggunakan System.getProperty ("key") ... Bagaimana cara meneruskan ini di Eclipse sehingga saya tidak perlu mengubah kode dan berfungsi di Eclipse untuk debugging?

Ada saran?

Devang Kamdar
sumber

Jawaban:

134

Jalankan -> Jalankan konfigurasi, pilih proyek, tab kedua: "Argumen". Kotak atas untuk program Anda, kotak bawah untuk argumen VM, mis -Dkey=value.

Bombe
sumber
1
di mana ini jika Anda mencoba menjalankan aplikasi android?
pengguna678392
mengapa saya harus menggunakan 'D' sebagai awalan?
Manticore
28
Jika Anda setebal saya - Argumen -D masuk ke kotak bawah untuk argumen VM , bukan di kotak atas untuk argumen program Anda. / sigh
ruffin
2
Kotak teratas adalah untuk String[] argsditeruskan ke mainmetode.
jaco0646
7
Adakah cara untuk mengatur ini agar terjadi secara default, jadi Anda tidak perlu memasukkan ini secara manual berulang kali untuk banyak tes?
Stewart
44

Anda bisa menggunakan java System.properties, untuk menggunakannya dari eclipse Anda bisa:

  1. Tambahkan -Dlabel="label_value"argumen VM dari pengujian Run Configurationseperti ini:

eclipse_vm_config

  1. Kemudian jalankan tesnya:

    import org.junit.Test;
    import static org.junit.Assert.assertEquals;
    
    public class Main {
        @Test
        public void test(){
            System.out.println(System.getProperty("label"));
            assertEquals("label_value", System.getProperty("label"));
        }
    }
  2. Akhirnya itu harus lulus tes dan mengeluarkan ini di konsol:

    label_value
orang gila
sumber
13

Anda dapat menambahkan argumen baris perintah ke konfigurasi proses Anda. Cukup edit konfigurasi run dan tambahkan -Dmyprop = value (atau apa pun) ke VM Arguments Box.

Izb
sumber
4
Jika yang Anda maksud adalah "kotak Argumen Program" ketika Anda mengatakan "kotak argumen baris perintah" di bawah tab Argumen - Tidak Berfungsi! Harus dimasukkan ke dalam "VM Arguments Box" seperti yang disebutkan oleh Bombe di atas.
Devang Kamdar
4

jalankan konfigurasi -> argumen -> argumen vm

(juga dapat ditempatkan dalam konfigurasi debug di bawah Konfigurasi Debug-> Arguments-> VM Arguments)

harry.huang
sumber
1

Ini akan berhasil untuk junit. untuk TestNG gunakan perintah berikut

-ea -Dmykey="value" -Dmykey2="value2"
Aniruddha Ghanekar
sumber
0

Ya begini caranya:

Klik kanan pada program Anda, pilih run -> run configuration lalu pada vm argument

-Denv=EnvironmentName -Dcucumber.options="--tags @ifThereisAnyTag"

Kemudian Anda dapat melamar dan menutup.

NiteshJain007
sumber