Okay, I've had to figure out how to do this a number of different times that exceeds two; so now I'm writing it down.
The Situation
I want to create a file in the test runtime workspace that I can run tests against.
The Solution, v0.1 ... (beta)
@Before
protected void setUp() throws Exception {
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
// Create a project in the runtime workspace
IProject project = root.getProject( "My-Test-Project" );
project.create( null );
project.open( null );
// Get a file from the test plug-in's bundle path
URL url = MyTestPlugin.getDefault().getBundle().getEntry( "/" );
URL fileUrl = new URL( url, "resources/my-source-file.txt" );
String filePath = FileLocator.toFileURL( fileUrl ).getFile();
File sourceFile = new File( filePath );
// Create a folder and file in the test workspace
IFolder folder = project.getFolder( "src" );
folder.create( false, true, null );
IFile file = folder.getFile( "testfile.txt" );
// and set its contents to the file from the plug-in
file.create( new FileInputStream( sourceFile ), false, null );
}
You will have to delete the project in tearDown. Otherwise, the next time
setUp gets called, you'll get a ResourceException.




No comments:
Post a Comment