Ho problemi a eseguire i test utilizzando gocheck. Devo passare un flag per specificare quale test eseguire, ad es. .Flag di riga di comando in conflitto Golang
Il mio file di test importa un pacchetto di impostazioni, in cui esiste una funzione init()
che specifica i propri flag e chiama flag.parseFlags()
. Il problema che sto avendo è che sembra sovrascrivere i flag gocheck, quindi ricevo un errore che il flag -gocheck.f non è riconosciuto.
Nota: non è sicuro se ciò è rilevante, ma accade solo in alcuni dei miei pacchetti e non in altri. Presumo che sia solo in base all'ordine in cui decide di importare i pacchetti, ma ho pensato di parlarne nel caso in cui ciò fosse rilevante.
Qualcun altro si è imbattuto in questo problema? C'è un modo semplice per far sì che tutte le bandiere si uniscano senza essere sbalordite o che le bandiere del gocheck abbiano la precedenza sulle mie bandiere personalizzate?
Grazie. Ho effettivamente corretto il codice con tentativi ed errori importando gocheck in modo anonimo nel mio file delle impostazioni, e ora tutti i flag funzionano insieme. Dopo aver letto la tua risposta e aver esaminato la fonte del gocheck, capisco perché ha funzionato: gocheck non chiama mai flag.Parse(), quindi devo solo assicurarmi che gocheck venga importato prima che venga chiamato il metodo settings.init() e tutte le flag lavorare insieme. Un buon consiglio per quanto riguarda solo l'analisi delle bandiere in main, lo terrò a mente per il futuro. – danny