2009-04-30 21 views
7

Sto migrando i miei test Junit da Junit v3 a Junit v4.Come faccio a cercare e sostituire strutturalmente in Intellij

Speravo di utilizzare la ricerca e sostituire strutturalmente "srs" per aggiungere un'annotazione @Test prima di tutti i metodi che iniziano con test. * Utilizzando il mio IDE Intellij preferito.

Non riesco a capire come farlo ... Posso creare una query che troverà tutti i metodi senza un'annotazione (c'è un esempio in bundle in Intellij) ma quando viene usato per fare una sostituzione o la mia classe viene rimpiazzata solo con i nomi dei metodi OPPURE non viene trovato nulla.

Forse un espressione regolare è più facile :-)

/Konstantin

+0

stavo cercando per la ricerca di doppi blocchi sincronizzati controllato prima di oggi Forse dovremmo aprire un bug report;. SRS non fa quello che abbiamo bisogno – krosenvold

+0

Yeah? Immagino che sia un po 'criptico per gli inesperti, ho visto un campione che è stato implementato con groovy. Come può usarlo un semplice mortale come me? – Konstantin

+1

Ho provato a usarlo un certo numero di volte, senza successo. un po 'per capire come fare le espressioni che corrispondono (anche se conosco un bel po' di sistemi RE), e poi quando applicato, elimina l'obiettivo piuttosto che sostituire la mia sostituzione. Alcune volte, ho dovuto guardare per un po 'di tempo ho trovato tutto il codice sparso nelle mie fonti che è stato cancellato Re hassle di quanto valga. – PanCrit

risposta

1

Non è possibile, al momento, ma ci sono richieste per la sostituzione di membri della classe.

Ecco un link utile per iniziare a SSR: https://www.jetbrains.com/idea/docs/ssr.pdf

+0

Il collegamento alla documentazione è morto. – dastrobu

+0

@dastrobu link di lavoro: https://www.jetbrains.com/idea/docs/ssr.pdf – MyDogTom

0

Open Search -> Sostituisci nel percorso
Directory Impostare la directory in cui il test è posizionato
Set stringa di ricerca per: public void test.
Impostare la stringa di sostituzione su: @Test \ n \ tpublic void test.
Selezionare la casella Espressione regolare.

Divertiti.

+0

Scusa, non proprio la risposta che stavo cercando. Stavo chiedendo la ricerca strutturale più potente. Ho già fatto la sostituzione usando regex. – Konstantin

+0

Questa risposta ha risolto il problema? –

1

ho provato con il seguente SSR ma ho lo stesso problema di voi: modello

Ricerca:

public class $TestCase$ extends $TestCaseClazz$ { 
    public void $testMethod$(); 
} 

sostituzione modello:

@Test public void $testMethod$(); 

E io chec k "Questa variabile è la destinazione della ricerca" su testMethod. L'anteprima sembra ok, ma in realtà IntelliJ cancellare l'intero metodo :(