While I haven't used Spring profiles yet, I actually thought about this problem yesterday.
Right now I have separation of tests using the cucumber tag @inDevelopment: features @inDevelopment aren't finished yet, so they should be run in the developers' machines but not in the continuous integration server or the full test suite.
So, I have a JUnit test InDevelopment_Tests that I filter in maven so it is excluded from maven's test suite and I achieve my goal: test is run in the developers' machines through JUnit but not in the full test suite or the CI server because these tests are run with maven (which excludes that class).
This doesn't solve an increasingly relevant issue: as tests grow, the maven test suite is starting to be not very quick (2-3 minutes). Ideally I'd have another tag, like @stableTests (I'd take it in Spring it would correspond to profile="integration") that would be be excluded in the developer's maven test suite but would be included in the same suite that runs in CI.
Maybe some of this might be useful to you.
Miguel Almeida