class Benchmark

public class Benchmark {}

功能:该类提供创建和运行单个性能测试用例的方法。

func run()

public func run(): BenchReport 

功能:运行该性能用例。

返回值:

static func create(String, Configuration, () -> Unit)

public static func create(name: String, configuration!: Configuration = Configuration(), body!: () -> Unit): Benchmark

功能:创建一个性能测试用例对象。

参数:

  • name : String - 用例名称。
  • configuration : Configuration - 用例配置信息。
  • body : () -> Unit - 用例执行体。

返回值:

static func createParameterized<T>(String, DataStrategy<T>, Configuration, (T) -> Unit)

static func createParameterized<T>(name: String, strategy: DataStrategy<T>, configuration!: Configuration = Configuration(), body!: (T) -> Unit): Benchmark

功能:创建一个参数化的性能测试用例对象。

参数:

  • name : String - 用例名称。
  • strategy : DataStrategy - 参数数据策略。
  • configuration : Configuration - 用例配置信息。
  • body : () -> Unit - 用例执行体。

返回值:

static func createParameterized<T>(String, DataStrategyProcessor<T>, Configuration, (T) -> Unit)

public static func createParameterized<T>(name: String, strategy: DataStrategyProcessor<T>, configuration!: Configuration = Configuration(), body!: (T) -> Unit): Benchmark

功能:创建一个参数化的性能测试用例对象。

参数:

返回值:

prop name

public prop name: String

功能:获取用例名称。

类型:String

class BenchReport

public class BenchReport <: Report {}

功能:提供性能用例执行结果报告处理能力。

func reportTo<T>(Reporter<BenchReport, T>)

public func reportTo<T>(reporter: Reporter<BenchReport, T>): T

功能:打印性能用例结果报告。

参数:

返回值:

  • T : 打印结果返回值。一般为 Unit 类型。

class CartesianProductProcessor

public class CartesianProductProcessor<T0,T1> <: DataStrategyProcessor<(T0,T1)> {}

功能:笛卡尔积处理器。

init(DataStrategyProcessor<T0>, DataStrategyProcessor<T1>)

public CartesianProductProcessor(let left: DataStrategyProcessor<T0>, let right: DataStrategyProcessor<T1>)

功能:构造函数

参数:

class Configuration

public class Configuration <: ToString {
    public init()
}

功能:存储 @Configure 宏生成的 unittest 配置数据的对象。Configuration 是一个类似 HashMap 的类,但它的键不是键和值类型,而是 String 类型,和任何给定类型的值。

init()

public init()

功能:构造一个空的实例。

func clone()

public func clone(): Configuration

功能:拷贝一份对象。

返回值:

func get<T>(String)

public func get<T>(key: String): ?T

功能:获取 key 对应的值。

T 为 泛型参数,用于在对象中查找对应类型的值。

参数:

返回值:

  • ?T - 未找到时返回 None,找到对应类型及名称的值时返回 Some<T>(v) 。

func remove<T>(String)

public func remove<T>(key: String): ?T

功能:删除对应键名称和类型的值。

参数:

返回值:

  • ?T - 当存在该值时返回该值,当不存在时返回 None。

func set<T>(String, T)

public func set<T>(key: String, value: T): Unit

功能:给对应键名称和类型设置值。

参数:

  • key: String - 键名称。
  • value: T - 键值。

func toString()

public func toString(): String

功能:该对象的字符化对象,当内部对象未实现 ToString 接口时,输出 '<not printable>' 。

返回值:

class ConsoleReporter

public class ConsoleReporter <: Reporter<TestReport, Unit> & Reporter<BenchReport, Unit>{
    public ConsoleReporter(let colored!: Bool = true)
}

功能:打印单元测试用例结果或者性能测试用例结果到控制台。

init(Bool)

public ConsoleReporter(let colored!: Bool = true)

功能:构造函数

参数:

  • colored : Bool - 是否使用带颜色的打印,默认带颜色。

class CsvReporter

public class CsvReporter <: Reporter<BenchReport, Unit> {
    public CsvReporter(let directory: Directory)
}

功能:打印性能测试用例结果数据到 Csv 文件上。

init(Directory)

public CsvReporter(let directory: Directory)

功能:构造函数。

参数:

  • directory: Directory - 打印文件生成地址。

class CsvRawReporter

public class CsvRawReporter <: Reporter<BenchReport, Unit> {
    public CsvRawReporter(let directory: Directory)
}

功能:打印性能测试用例结果数据,该数据只有批次的原始测量值,到 Csv 文件上。

init(Directory)

public CsvRawReporter(let directory: Directory)

功能:构造函数。

参数:

  • directory: Directory - 打印文件生成地址。

class CsvStrategy

public class CsvStrategy<T> <: DataStrategy<T> where T <: Serializable<T> {}

功能:DataStrategy 对 CSV 数据格式的序列化实现。

func provider(Configuration)

public override func provider(configuration: Configuration): SerializableProvider<T>

功能:生成序列化数据迭代器。

参数:

返回值:

class DataStrategyProcessor

abstract sealed class DataStrategyProcessor<T> {}

功能:所有 DataStrategy 组件的基类。该类的实例由 @Strategy 宏或成员函数创建。

func intoBenchmark(String, Configuration, (T, Int64, Int64) -> Float64)

public func intoBenchmark(
    caseName!: String,
    configuration!: Configuration,
    doRun!: (T, Int64, Int64) -> Float64
): Benchmark

功能:宏生成的代码使用的辅助函数。用于创建使用该策略的性能测试用例。

参数:

  • caseName : String - 用例名称。
  • configuration : Configuration - 配置信息。
  • doRun : (T, Int64, Int64) -> Float64 - 性能测试用例执行体。

返回值:

func intoUnitTestCase(String, Configuration, (T) -> Unit)

public func intoUnitTestCase(
    caseName!: String,
    configuration!: Configuration,
    doRun!: (T) -> Unit
): UnitTestCase

功能:宏生成的代码使用的辅助函数。用于创建使用该策略的测试用例。

参数:

  • caseName : String - 用例名称。
  • configuration : Configuration - 配置信息。
  • doRun : (T) -> Unit - 性能测试用例执行体。

返回值:

func map<R>((T) -> R)

public func map<R>(f: (T) -> R): MapProcessor<T, R> 

功能:简单地将 f 应用于原始数据策略的每个项目。 Shrink 也会发生在原始输入上,然后进行映射。

参数:

  • f: (T) -> R - 需要增加的处理逻辑函数。

返回值:

func mapWithConfig<R>((T, Configuration) -> R)

public func mapWithConfig<R>(f: (T, Configuration) -> R): MapProcessor<T, R>

功能:可以访问当前的 Configuration ,只需将 f 应用于原始数据策略的每个项目。 Shrink 也会发生在原始输入上,然后进行映射。

参数:

  • f: (T, Configuration) -> R - 需要增加的处理逻辑函数。

返回值:

func flatMap<R>((T) -> DataProvider)

public func flatMap<R>(f: (T) -> DataProvider<R>): FlatMapProcessor<T, R>

功能:简单地将 f 应用于原始数据策略的每个项目,然后展平结果。 Shrink 也会发生在原始输入上,然后进行 flatMap

参数:

  • f: (T) -> DataProvider - 需要增加的处理逻辑函数。

返回值:

func flatMapStrategy((T) -> DataStrategy<R>)

public func flatMapStrategy<R>(f: (T) -> DataStrategy<R>): FlatMapStrategyProcessor<T, R>

功能:简单地将 f 应用于原始数据策略的每个项目,然后展平结果。 Shrink 是通过返回的策略而不是原始输入来完成的。

参数:

  • f: (T) -> DataStrategy - 需要增加的处理逻辑函数。

返回值:

func product(DataStrategyProcessor<R>)

public func product<R>(p: DataStrategyProcessor<R>): CartesianProductProcessor<T, R>

功能:笛卡尔积组合器创建包含原始策略中元素的所有可能排列的数据策略。 对于无限策略,它首先迭代所有有限的子策略,然后才推进无限的子策略。 Shrink 独立且统一地发生在原始策略的每个元素上。

参数:

返回值:

static func start(DataStrategy<T>, String)

public static func start(s: DataStrategy<T>, name: String): SimpleProcessor<T>

功能:DataStrategy 的组合和映射的起点。

参数:

返回值:

static func start(() -> DataStrategy<U>, String)

public static func start<U>(f: () -> DataStrategy<U>, name: String): DataStrategyProcessor<U>

功能:DataStrategy 的组合和映射的起点。

参数:

  • s: () -> DataStrategy<U> - 生成数据策略的闭包。
  • name: String - 用例名称。

返回值:

static func start(() -> DataStrategy<T>, String, Int64)

public static func start(f: () -> DataStrategy<T>, name: String, x!: Int64 = 0): SimpleProcessor<T>

功能:DataStrategy 的组合和映射的起点。

参数:

  • s: () -> DataStrategy - 生成数据策略的闭包。
  • name: String - 用例名称。
  • x: Int64 - 为实现不同返回值的重构增加的参数。

返回值:

static func start(() -> DataStrategyProcessor<T>, String)

public static func start(f: () -> DataStrategyProcessor<T>, name: String): DataStrategyProcessor<T>

功能:DataStrategy 的组合和映射的起点。

参数:

返回值:

static func start<U>(() -> DataStrategyProcessor, String, Int64)

public static func start<U>(f: () -> DataStrategyProcessor<U>, name: String, x!: Int64 = 0):
    DataStrategyProcessor<U> where U <: BenchInputProvider<T>

功能:DataStrategy 的组合和映射的起点。

参数:

  • s: () -> DataStrategyProcessor - 生成数据策略处理器的闭包。
  • name: String - 用例名称。
  • x: Int64 - 为实现不同返回值的重构增加的参数。

返回值:

class FlatMapProcessor

public class FlatMapProcessor<T,R> <: DataStrategyProcessor<R> {}

功能:对参数数据进行 FlatMap 的处理器。

class FlatMapStrategyProcessor

public class FlatMapStrategyProcessor<T,R> <: DataStrategyProcessor<R> {}

功能:对参数数据进行 FlatMap 的处理器。

class InputParameter

public class InputParameter {}

功能:入参对象类型

class JsonStrategy

public class JsonStrategy<T> <: DataStrategy<T> where T <: Serializable<T> {}

功能:DataStrategy 对 JSON 数据格式的序列化实现。

func provider(Configuration)

public override func provider(configuration: Configuration): SerializableProvider<T>

功能:生成序列化数据迭代器。

参数:

返回值:

  • SerializableProvider<T> - 序列化迭代器对象。

class LazyCyclicNode

public open class LazyCyclicNode {}

功能:用于在一个循环中一个接一个地推进类型擦除的内部惰性迭代器。

class MapProcessor

public class MapProcessor<T,R> <: DataStrategyProcessor<R> {}

功能:对参数数据进行 Map 的处理器。

class RandomDataProvider

public class RandomDataProvider<T> <: DataProvider<T> where T <: Arbitrary<T> {
    public init(configuration:Configuration)
}

功能:使用随机数据生成的 DataProvider 接口的实现。

prop isInfinite

public override prop isInfinite: Bool

功能:是否生成无限的数据。

类型:Bool

init(Configuration)

public init(configuration: Configuration)

功能:构造一个随机数据提供者的对象。

参数:

  • configuration: Configuration - 配置对象,必须包含一个随机生成器,名称为 random ,类型为 random.Random

异常:

func provide()

public override func provide(): Iterable<T>

功能:提供随机化生成的数据。

返回值:

  • Iterable<T> - 从 T 的任意实例创建的无限迭代器。

class RandomDataShrinker

public class RandomDataShrinker<T> <: DataShrinker<T> {}

功能:使用随机数据生成的 DataShrinker 接口的实现。

func shrinker(T)

public override func shrink(value: T): Iterable<T>

功能:获取值的缩减器。

参数:

  • value: T - 参数值。

返回值:

  • Iterable<T> - 如果参数实现了 Shrink 接口,则返回缩减后的迭代器,如果未实现,则返回空的数组。

class RandomDataStrategy

public class RandomDataStrategy<T> <: DataStrategy<T> where T <: Arbitrary<T>{}

功能:使用随机数据生成的 DataStrategy 接口的实现。

func provider(Configuration)

public override func provider(configuration: Configuration): RandomDataProvider<T>

功能:获取随机数据的提供者。

参数:

返回值:

func shrinker(Configuration)

public override func shrinker(_: Configuration): RandomDataShrinker<T>

功能:获取随机数据的缩减器。

参数:

返回值:

class Report

sealed abstract class Report {}

功能:打印测试用例结果报告的基类。

prop errorCount

public prop errorCount: Int64

功能:获取错误的用例个数

类型:Int64

prop caseCount

public prop caseCount: Int64

功能:获取用例个数

类型:Int64

prop passedCount

public prop passedCount:   Int64

功能:获取通过的用例个数

类型:Int64

prop failedCount

public prop failedCount:   Int64

功能:获取失败的用例个数

类型:Int64

prop skippedCount

public prop skippedCount:   Int64

功能:获取跳过的用例个数

类型:Int64

class SerializableProvider

public class SerializableProvider<T> <: DataProvider<T> where T <: Serializable<T> {}

功能:获取序列化数据 DataProvider 接口的实现。

func provide()

public override func provide(): Iterable<T> 

功能:获取数据迭代器。

返回值:

prop isInfinite

public prop isInfinite: Bool

功能:是否生成无限的数据。

类型:Bool

class SimpleProcessor

public class SimpleProcessor<T> <: DataStrategyProcessor<T> {}

功能:简单的数据策略处理器。对 DataStrategyProcessor 的一种实现。

init(() -> DataStrategy<T>, String)

功能:构造函数。

参数:

  • buildDelegate : () -> DataStrategy - 生成数据策略的闭包。
  • name : String - 处理器名称。

class TestGroup

public class TestGroup {}

功能:提供构建和运行测试组合方法的类。

func runBenchmarks()

public func runBenchmarks(): BenchReport

功能:运行所有性能测试用例。

返回值:

func runBenchmarks(Configuration)

public func runBenchmarks(Configuration): BenchReport

功能:带运行配置得执行所有性能测试用例。

参数:

返回值:

func runTests()

public func runTests(): TestReport

功能:执行所有单元测试用例。

返回值:

func runTests(Configuration)

public func runTests(configuration: Configuration): TestReport

功能:带运行配置得执行所有单元测试用例。

参数:

返回值:

static func builder(String)

public static func builder(name: String): TestGroupBuilder

功能:创建测试组合构造器。

参数:

  • name : String - 测试组合名称。

返回值:

static func builder(TestGroup)

public static func builder(group: TestGroup): TestGroupBuilder

功能:创建测试组合构造器。

参数:

返回值:

prop name

public prop name: String

功能:获取测试组合名称。

类型:String

class TestGroupBuilder

public class TestGroupBuilder {}

功能:提供配置测试组合的方法的构造器。

func add(Benchmark)

public func add(benchmark: Benchmark): TestGroupBuilder

功能:为测试组合增加性能测试用例。

参数:

  • benchmark : Benchmark - 性能测试用例。

返回值:

func add(TestSuite)

public func add(suite: TestSuite): TestGroupBuilder

功能:为测试组合增加单元测试套。

参数:

返回值:

func add(UnitTestCase)

public func add(test: UnitTestCase): TestGroupBuilder

功能:为测试组合增加单元测试用例。

参数:

返回值:

func build()

public func build(): TestGroup

功能:配置完成后,构建测试组合对象。

返回值:

func configure(Configuration)

public func configure(configuration: Configuration): TestGroupBuilder

功能:为测试组合配置配置信息。

参数:

返回值:

func setName(String)

public func setName(name: String): TestGroupBuilder

功能:为测试组合设置名称。

参数:

返回值:

class TestReport

public class TestReport <: Report {}

功能:单元测试执行结果报告。

func reportTo<T>(Reporter<TestReport, T>)

public func reportTo<T>(reporter: Reporter<TestReport, T>): T

功能:打印单元测试执行报告。

参数:

返回值:

  • T : 打印返回值,一般为 Unit 。

class TestSuite

public class TestSuite {}

功能:提供构建和执行测试套方法的类。

func runBenchmarks()

public func runBenchmarks(): BenchReport 

功能:运行所有性能测试用例。

返回值:

func runBenchmarks(Configuration)

public func runBenchmarks(configuration: Configuration): BenchReport

功能:带配置信息得运行所有性能测试用例。

参数:

返回值:

func runTests()

public func runTests(): TestReport

功能:运行测试套。

返回值:

func runTests(Configuration)

public func runTests(configuration: Configuration): TestReport

功能:带配置信息得运行测试套。

参数:

返回值:

static func builder(String)

public static func builder(name: String): TestSuiteBuilder

功能:创建测试套构建器。

参数:

  • name : String - 测试套名称。

返回值:

static func builder(TestSuite)

public static func builder(suite: TestSuite): TestSuiteBuilder

功能:创建测试套构建器。

参数:

返回值:

prop name

public prop name: String

功能:获取测试套名称。

类型:String

class TestSuiteBuilder

public class TestSuiteBuilder {}

功能:提供配置测试套方法的测试套构造器。

add(Benchmark)

public func add(benchmark: Benchmark): TestSuiteBuilder

功能:为测试套添加性能用例。

参数:

  • benchmark : Benchmark - 性能测试用例。

返回值:

add(UnitTestCase)

public func add(test: UnitTestCase): TestSuiteBuilder

功能:为测试套添加单元测试用例。

参数:

返回值:

afterAll(() -> Unit)

public func afterAll(body: () -> Unit): TestSuiteBuilder

功能:为测试套添加在所有用例执行完成后执行的生命周期管理闭包。

参数:

  • body : () -> Unit - 执行体。

返回值:

afterEach(() -> Unit)

public func afterEach(body: () -> Unit): TestSuiteBuilder

功能:为测试套添加在每个用例执行完成后执行的生命周期管理闭包。

参数:

  • body : () -> Unit - 执行体。

返回值:

afterEach((String) -> Unit)

public func afterEach(body: (String) -> Unit): TestSuiteBuilder

功能:为测试套添加在每个用例执行完成后执行的生命周期管理闭包。

参数:

  • body : (String) -> Unit - 执行体。

返回值:

beforeAll(() -> Unit)

public func beforeAll(body: () -> Unit): TestSuiteBuilder

功能:为测试套添加在所有用例执行前执行的生命周期管理闭包。

参数:

  • body : () -> Unit - 执行体。

返回值:

beforeEach(() -> Unit)

public func beforeEach(body: () -> Unit): TestSuiteBuilder

功能:为测试套添加在每个用例执行前执行的生命周期管理闭包。

参数:

  • body : () -> Unit - 执行体。

返回值:

beforeEach((String) -> Unit)

public func beforeEach(body: (String) -> Unit): TestSuiteBuilder

功能:为测试套添加在每个用例执行前执行的生命周期管理闭包。

参数:

  • body : (String) -> Unit - 执行体。

返回值:

build()

public func build(): TestSuite

功能:配置完成后构造测试套。

返回值:

configure(Configuration)

public func configure(configuration: Configuration): TestSuiteBuilder

功能:为测试套添加配置信息。

参数:

返回值:

setName(String)

public func setName(name: String): TestSuiteBuilder

功能:为测试套设置名称。

参数:

  • name : String - 测试套名称。

返回值:

class UnitTestCase

public class UnitTestCase {}

功能:提供创建和执行单元测试用例的方法的类。

func run()

public func run(): TestReport 

功能:运行单元测试用例。

返回值:

static func create(String, Configuration, () -> Unit)

public static func create(name: String, configuration!: Configuration = Configuration(), body!: () -> Unit): UnitTestCase

功能:创建单元测试用例。

参数:

  • name : String - 用例名称。
  • configuration : Configuration - 用例配置信息。
  • body : () -> Unit - 用例执行体。

返回值:

static func createParameterized<T>(String, DataStrategy<T>, Configuration, (T) -> Unit)

static func createParameterized<T>(name: String, strategy: DataStrategy<T>, configuration!: Configuration = Configuration(), body!: (T) -> Unit): UnitTestCase

功能:创建参数化的单元测试用例。

参数:

  • name : String - 用例名称。
  • strategy : DataStrategy - 参数数据策略。
  • configuration : Configuration - 用例配置信息。
  • body : () -> Unit - 用例执行体。

返回值:

static func createParameterized<T>(String, DataStrategyProcessor<T>, Configuration, (T) -> Unit)

public static func createParameterized<T>(name: String, strategy: DataStrategyProcessor<T>, configuration!: Configuration = Configuration(), body!: (T) -> Unit): UnitTestCase

功能:创建参数化的单元测试用例。

参数:

返回值:

prop name

public prop name: String

功能:获取单元测试名称。

类型:String

class XmlReporter

public class XmlReporter <: Reporter<TestReport, Unit> {
    public XmlReporter(let directory: Directory)
}

功能:打印单元测试用例结果数据到 Xml 文件上。

init(Directory)

public XmlReporter(let directory: Directory)

功能:构造函数。

参数:

  • directory: Directory - 打印文件生成地址。