Fyl*_*lke 2 groovy yaml snakeyaml
我想将以下结构转储到YAML文件:
public class TestSuite {
String name
List testCases = []
}
Run Code Online (Sandbox Code Playgroud)
测试用例列表在此类中:
class TestCase {
String name
String id
}
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像这样:
name: Carrier Handling and Traffic
testCases:
- name: Call setup by UE
id: DCM00000001
Run Code Online (Sandbox Code Playgroud)
但最终看起来像这样:
name: Carrier Handling and Traffic
testCases:
- !!com.package.path.TestCase
name: Call setup by UE
id: DCM00000001
Run Code Online (Sandbox Code Playgroud)
我想这与List不是标记数据结构这一事实有关,但我无法弄清楚如何获得测试用例的名称来表示对象.提示?
定义TestSuite为:
public class TestSuite {
String name
List<TestCase> testCases = []
}
Run Code Online (Sandbox Code Playgroud)
让你更接近你想要的结果?我自己没有使用SnakeYaml ......
有一些空闲时间,并提出了这个独立的测试脚本:
@Grab( 'org.yaml:snakeyaml:1.10' )
import org.yaml.snakeyaml.Yaml
import org.yaml.snakeyaml.representer.Representer
import java.beans.IntrospectionException
import org.yaml.snakeyaml.introspector.Property
public class TestSuite {
String name
List<TestCase> testCases = []
}
class TestCase {
String name
String id
}
class NonMetaClassRepresenter extends Representer {
protected Set<Property> getProperties( Class<? extends Object> type ) throws IntrospectionException {
super.getProperties( type ).findAll { it.name != 'metaClass' }
}
}
TestSuite suite = new TestSuite( name:'Carrier Handling and Traffic' )
suite.testCases << new TestCase( name:'Call setup by UE', id:'DCM00000001' )
println new Yaml( new NonMetaClassRepresenter() ).dumpAsMap( suite )
Run Code Online (Sandbox Code Playgroud)
哪个印刷品:
name: Carrier Handling and Traffic
testCases:
- id: DCM00000001
name: Call setup by UE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2227 次 |
| 最近记录: |