Can I run a single unit test from the command line for a Grails project?

后端 未结 5 1730
借酒劲吻你
借酒劲吻你 2021-02-01 15:01

I\'ve been running my Grails unit tests by typing grails test-app :unit, which runs all unit tests. Is there a way to specify a single test?

Edit:<

5条回答
  •  青春惊慌失措
    2021-02-01 15:18

    Possibilities of things that might be wrong with your setup:

    • Your command order is incorrect. What works for me is:

      grails test-app -unit Foo (where my test class is FooTests.groovy)

    • You aren't explicitly importing grails.test.GrailsUnitTestCase.

      I had some problems with it recognizing my tests when I didn't import this. When I was extending GroovyTestCase, things seemed to work normally.

    Working Example

    Here's a sample set of tests that work for me. Perhaps you can spot some differences between them and your tests?

    Note: These are all run with the testing plugin installed

    test/unit/FooTests.groovy

    import grails.test.GrailsUnitTestCase
    class FooTest extends GrailsUnitTestCase {
        void testFoo() {
            assert true
        }
    
        void testBar() {
            assert true
        }
    }
    

    test/unit/BarTests.groovy

    import grails.test.GrailsUnitTestCase
    class BarTest extends GrailsUnitTestCase {
        void testFoo() {
            assert true
        }
    
        void testBar() {
            assert true
        }
    }
    

    test/unit/my/pkg/BazTests.groovy

    package my.pkg
    
    import grails.test.GrailsUnitTestCase
    
    class BazTest extends GrailsUnitTestCase {
        void testFoo() {
            assert true
        }
    
        void testBar() {
            assert true
        }
    }
    

    command: all unit tests

    $ grails test-app -unit
    ...
    
    Starting unit test phase ...
    
    -------------------------------------------------------
    Running 6 unit tests...
    Running test my.pkg.BazTest...PASSED
    Running test FooTest...PASSED
    Running test BarTest...PASSED
    Tests Completed in 847ms ...
    -------------------------------------------------------
    Tests passed: 6
    Tests failed: 0
    -------------------------------------------------------
    
    ...
    Tests PASSED - view reports in target/test-reports
    

    command: Foo unit tests

    $ grails test-app -unit Foo
    ...
    
    Starting unit test phase ...
    
    -------------------------------------------------------
    Running 1 unit test...
    Running test FooTest...PASSED
    Tests Completed in 815ms ...
    -------------------------------------------------------
    Tests passed: 2
    Tests failed: 0
    -------------------------------------------------------
    
    ...
    Tests PASSED - view reports in target/test-reports
    

    command: my.pkg.Baz unit tests

    $ grails test-app -unit my.pkg.Baz
    ...
    
    Starting unit test phase ...
    
    -------------------------------------------------------
    Running 2 unit tests...
    Running test my.pkg.BazTest...PASSED
    Tests Completed in 842ms ...
    -------------------------------------------------------
    Tests passed: 2
    Tests failed: 0
    -------------------------------------------------------
    
    ...
    Tests PASSED - view reports in target/test-reports
    

    I tried these in Grails 1.2.3 and Grails 1.3.4, both behaved the same.

提交回复
热议问题