You could use spring profiles for that( reference How to set a Spring profile to a package? ), by using
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd">
        <!-- define profile beans at the end of the configuration file -->
    <beans profile="test">
    <context:component-scan base-package="com.main">
            <context:exclude-filter expression="com.main.*Controller" type="regex"/>
    </context:component-scan>
    </beans>
    <beans profile="!test">
    <context:component-scan base-package="com.main"/>
    </beans>
and annotating your test with the specific @ActiveProfile("test")
EDIT:
If your xml does not define a <component:scan> tag, the you can control package scanning from your unit test by using java configuration.
The controllers can then be excluded with the @ComponentScan excludeFilter as follows:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = AnnotationConfigContextLoader.class)
public class HelperTest {
    @Configuration
    @ComponentScan(basePackages = "yourPackage",
            excludeFilters = @ComponentScan.Filter(value = Controller.class, type = FilterType.ANNOTATION))
    @ImportResource(locations = "classpath:context.xml")
    static class TestConfiguration {
    }