La domanda breve è: Come posso ottenere operazioni di file iPhone (obiettivo-c) per funzionare correttamente da una riga di comando Test unità?Test riga unità di comando iPhone (e I/O file)
La lunga domanda, con spiegazione: Questo alla fine diventerà uno script per eseguire building/testing automatici per la build del mio iPhone, tramite un'istanza di Hudson. Seguendo il link di makdad su this, la domanda SO mi ha permesso di eseguire i test di unità dalla riga di comando (semi) con successo.
Tuttavia, uno dei miei test ha esito negativo. Il test chiamerebbe una classe Caching Service per salvare un file, quindi provare a recuperarlo. tuttavia, file di I/O sembra non funzionare durante l'esecuzione dei test dalla riga di comando :(.
di rinvio, in esecuzione i test di unità attraverso i risultati Xcode GUI in nessuna di tali errori.
Sto usando NSFileHandle le chiamate di metodo per ottenere le maniglie per la scrittura. in caso di ritorno pari a zero, viene creato il file usando
[[NSFileManager defaultManager] createFileAtPath:filePath contents:nil attributes:nil];
ho pensato che potrebbe avere a che fare con gli spazi nel percorso della directory cache del simulatore. sono sulla strada giusta ? se sì, come potrei rettificare questo?
Si noti inoltre che il simulatore deve essere NON già in esecuzione affinché funzioni, il simulatore viene avviato a livello di programmazione e non visualizza una GUI. se è in esecuzione, la generazione della riga di comando ha esito negativo.
Il file è stato creato? Sta generando un errore? Generalmente, gli spazi non dovrebbero essere un problema nella NSString, poiché non c'è nient'altro che l'elaborazione, saranno presi alla lettera. Una cosa su cui dovevamo stare attenti durante l'esecuzione dei test dalla riga di comando era qualsiasi variabile di ambiente impostata da Xcode, ma non dal nostro script. – gaige
Purtroppo non ho avuto la possibilità di esaminare questo aspetto per un po ', passando a un altro progetto e non ricordo se il file è stato creato o meno. tuttavia hai ragione, potrebbe essere necessario impostare una variabile di ambiente per dare al simulatore dello spazio su disco da utilizzare come 'memoria interna'. se avrò la possibilità cercherò di verificarlo – Robotnik
Mancano le directory intermedie? –