Mar 17

If you are using Homebrew and want to use the maven formular you have to delete the symbolic link /usr/bin/mvn.

Thereby you use your homebrew maven installation instead of the shipping version of OSX.

The executable is located at /usr/local/bin/ which should be part of your path already.
The maven package itself can be found at /usr/local/Cellar/maven/3.0.3/libexec. This will be interesting for your IDE, which often wants a pointer to your maven home directory. I created a symlink current so that I can change the version to use at the command line without the need to configure my IDE again.

[/usr/local/Cellar/maven] master@struggy$ sudo ln -s 3.0.3/libexec/ current

That’s it.

Tagged with:
Oct 09

The Problem
The project structuring of SoapUI (not the Pro version) is limited. When you use the maven-soapui-plugin to automate your tests, you will define multiple plugins – each pointing to a different project file. Your pom.xml will be messed up with sequences like these:

          <plugin>
            <groupId>eviware</groupId>
            <artifactId>maven-soapui-plugin</artifactId>
            <version>${soapui.version}</version>
            <executions>
              <execution>
                <id>soapui-test-xy</id>
                <phase>test</phase>
                <configuration>
                  <projectFile>${basedir}/src/test/soapui/bkr.xml</projectFile>
                  <outputFolder>${project.build.directory}/soapui</outputFolder>
                  <exportAll>true</exportAll>
                  <printReport>true</printReport>
                  <host>localhost</host>
                </configuration>
                <goals>
                  <goal>test</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

The Solution
The solution is very simple. Instead of executing your functional tests with maven just run them from your unit testing framework:

  @Test
  public void test_bkr() throws Exception {
    SoapUITestCaseRunner runner = new SoapUITestCaseRunner();
    runner.setHost("my-host");
    runner.setProjectFile("./src/test/soapui/bkr.xml");
    SoapUiConfigLogger.logConfig(runner);
    runner.run();
  }

Now you have full flexibility of how to organize your tests:

  • package structure
  • test-class name
  • test-method name
  • test-groups (TestNG)
  • ..

I want to test external services that are already running. If you want to test your own services you have to start-up and tear-down jetty. Either you try to use @Before.. and @After.. annotations or you bind your tests to maven’s integration-test and use pre-integration and post-integration for that.

Tagged with:
Jun 19

A couple of days ago I bought a MacBookPro and so I switched from Ubuntu to MacOS. Unfortunately Apple did not ship their unix-version with a package-manager. After a google search I found two alternatives. MacPorts and Homebrew. The press for MacPorts seems not as good as for Homebrew, so I gave Homebrew a try.

For both you need Xcode to be installed:(
UPDATE: At least for Homebrew this is no longer true – see Homebrew without Xcode – save 1.5 GB

sudo curl -L http://github.com/mxcl/homebrew/tarball/master | sudo tar xz --strip 1 -C /usr/local

Done! This commands will download homebrew and extract it into /usr/local. Some advise you to change the owner of /usr/local. I don’t and add a sudo when I install something. Time to demonstrate it:

sudo brew install maven

Maven is installed. Try mvn --version. If you want to know what is extracted and installed use the verbose mode:

sudo brew -v install maven

The most common things you will need are available: maven, gradle, git, groovy, all there. If s.th. is missing the support reacts quiet fast. Check the so called formulas if your required package is available.

Next, I tried to uninstall a package. Works as it should.

So far I’m happy and recommend it.

Tagged with:
preload preload preload