2011-12-09 52 views
2

我想知道是否有辦法強制Eclipse清除將要運行的測試的bin/文件夾,並重新編譯所有文件?每當我嘗試運行JUnit測試時,是否可以強制Eclipse重新編譯我的文件?

我在問這個問題,因爲我的測試涉及刪除/重命名/添加文件,這意味着目前只有第一次運行測試才能正常工作,因爲從那時起它的工作文件是不同於他們在開始的時候。

因此,我所要求的不僅僅是重新編譯測試文件夾中的.java文件,而是基本上對測試所在的文件夾執行本地「清理」(我不想要一個FULL清理/重新編譯項目,因爲它是巨大的!)。

感謝

+0

您正在操作Java類文件的任何文件 - 或僅僅是其他資源? – ziesemer

+0

爲什麼你不能在你的測試用例的setUp()方法中手動編寫清理操作? – bragboy

+0

資源文件和.class文件都在更改其內容。 setUp()在這裏沒有太大的幫助.. –

回答

1

要似乎不太可能「在測試文件夾上局部清潔」做只。

難道你不能確保所有的文件都被寫入到所需的目錄 - 即使File.createTempFile(...)中的內容 - 然後在它上面執行一個刪除作爲JUnit開始的一部分測試?

實際上,這似乎正是JUnit的TemporaryFolder的用途。詳情請見http://weblogs.java.net/blog/johnsmart/archive/2009/09/29/working-temporary-files-junit-47。這也會使你的構建對Eclipse更具體,並且像Maven等一樣工作。

否則,只需使用Ant或Maven運行測試 - 並清除任何特定的文件,文件夾或模式需要 - 然後運行JUnit。它們都能很好地集成到Eclipse中,並且能夠在開始測試的程序開始之前滿足您完成任務的需求 - 特別是如果您還將修改Java類文件,您也會這樣說。

+0

TemporaryFolder似乎接近我所尋找的。但不完全。我希望它不會在運行測試後刪除文件,但只有當我嘗試再次運行它們時(它可以方便地使用測試輸出文件。)。無論如何,它不會工作,因爲它似乎TemporaryFolder更多的是資源,我也需要它來爲.class文件本身應用這個過程! –

+0

螞蟻或Maven方法如何? – ziesemer

+0

他們也有他們的問題。我猜測在使用ant來運行我的JUnit測試時,他們在Eclipse的「測試結果」窗口「外部」運行,對吧? –

相關問題