自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(164)
  • 资源 (6)
  • 收藏
  • 关注

原创 Go全家桶规划之四: gomini迷你框架之协程并发框架, 工业级巨匠

/ fmt.Println("长时间运行的操作完成。// fmt.Println("操作超时,退出。"msg": "成功","msg": "成功","msg": "成功",

2024-04-27 12:10:10 1390

原创 Go全家桶规划之二: GO依赖注入框架godi之六,实现BEAN注册容器、 自动注入, 工业级巨匠

import (// 注册一个成员加载函数return s。

2024-04-23 02:06:02 1055

原创 goframe glog使用

如果你使用的是 GoFrame 2.7 版本,可以访问 [GoFrame 2.7 文档](https://www.oschina.net/news/286746/goframe-2-7-released) 来获取更多关于 `glog` 的详细信息和最新特性。3. **文件输出**:`glog` 可以将日志输出到文件中,支持自定义日志文件的存储路径和文件名格式。9. **日志文件名格式**:可以自定义日志文件的名称格式,支持使用 `gtime` 时间格式。// 创建一个新的日志记录器。

2024-04-30 16:33:40 89

原创 双V测试方案概要

第三方监管根据项目需求和双V流程对乙方的研发过程和交付件进行验收、测评,乙方的需求设计与开发文档、测试文档与测试结果、以及可运行的系统进行管控、评审、测评,同时对乙方的研制过程管控、测评,第三方依据测评方案测评给出测评报告,评审通过后移交给项目监管方甲方,交付件包括乙方的交付件是经过测评OK的、同时监管方的交付件证明交付的系统通过安全认证测试。另一种方法是通过在工程经验的基础上对某些典型系统的可用率进行判断,将它们确定为各等级,然后确定典型的排列次序,以此对各种等级规定分级 的、非数值形式的可用性要求。

2024-04-30 12:29:46 274

原创 map和sync.Map哪个更高效

**单线程或简单并发**:如果应用场景是单线程或者并发度不高,普通 `map` 可能更高效,因为它没有额外的同步开销。- **复杂性**:使用 `sync.Map` 可能比使用普通 `map` 复杂,因为它提供了更多的并发控制功能。- **高并发**:在高并发场景下,`sync.Map` 可以提供更好的性能,因为它通过读写锁减少了锁争用。- **性能**:在没有并发竞争的情况下,普通 `map` 可能更快,因为它没有额外的同步开销。- **并发安全**:内部使用读写锁,自动处理并发访问,无需手动加锁。

2024-04-30 09:52:36 85

原创 goframe之gconfig

GoFrame 的 `gconfig` 组件是一个用于处理配置文件的模块,它支持多种格式的配置文件,如 JSON、YAML、XML、TOML 等。4. **监听配置变更**:`gconfig` 支持配置文件的热更新,可以监听配置文件的变化并重新加载。3. **使用分组**:`gconfig` 允许你为配置项设置分组,以便于管理和读取。1. **加载配置文件**:可以使用 `gconfig` 来加载和解析配置文件。2. **读取配置值**:`gconfig` 提供了多种方法来读取配置项的值。

2024-04-30 08:38:57 134

原创 goframe核心组件:php转go程序员首选, go中瑞士军刀,好比JAVA中的HUTOOL战斗机!

1. **gdb** - ORM 组件,用于关系型数据库的 ORM 操作,支持多种数据库,如 MySQL、PostgreSQL、SQLite、Oracle 等。6. **gconfig** - 配置管理组件,支持多种格式的配置文件,如 JSON、YAML、XML、TOML 等。4. **gcache** - 缓存组件,提供了内存缓存、文件缓存、分布式缓存等解决方案。18. **gutil** - 工具类组件,提供字符串、数组、文件等操作的工具函数。11. **gfs** - 文件系统组件,用于文件操作。

2024-04-30 08:29:24 74

原创 goframe之gmap

GoFrame 的 `gmap` 是一个为 Go 语言提供的并发安全的 map 容器模块,它包含多种数据结构的 map 容器,如 `HashMap`、`TreeMap` 和 `ListMap`。例如,在某些场景下,`gmap` 的 `Set` 和 `Get` 操作在基准测试中表现出更低的延迟和更少的内存分配。5. **丰富接口**:`gmap` 提供了丰富的接口,如 `Set`、`Get`、`Remove`、`Contains`、`Size`、`Keys`、`Values` 等,以及批量操作和迭代器功能。

2024-04-30 08:10:53 63

原创 goframe之goredis

8. **项目地址**:GoRedis 的开源项目地址为 [https://gitcode.com/Carpe-Wang/GoRedis](https://gitcode.com/Carpe-Wang/GoRedis),开发者可以访问该地址获取更多信息和下载使用。1. **高性能**:GoRedis 利用 Go 的协程(goroutine)和通道(channel)实现并发 I/O,使用了 `net.Conn` 上的非阻塞读写,以保持高性能。5. **错误处理**:返回的错误类型详细,有助于调试。

2024-04-30 08:07:06 66

原创 go channel有什么作用?

3. **线程安全**:channel内部实现了锁机制,保证了多个goroutines对channel的访问是安全的,不会出现数据竞争的问题。5. **关闭**:channel可以被关闭,一旦关闭,就不能再向其发送数据,但仍然可以从中接收数据,直到所有数据都被接收完毕。6. **顺序性**:channel保证了数据的发送和接收是顺序性的,即先发送的数据会被先接收。8. **提高并发性能**:合理利用channel可以实现高效的并发编程,提高程序的执行效率。

2024-04-29 21:06:41 66

原创 go语言IoC库有哪些

另外,Go语言本身也提供了一些用于I/O操作的库,例如标准库中的"io"包,它包含了一系列用于处理I/O操作的接口和函数。Inject:Inject是一个简单的Go语言依赖注入库,它提供了基本的依赖注入功能,包括构造函数注入和字段注入。请注意,这些库只是实现IoC或依赖注入的一些选择,具体使用哪个库取决于项目的需求和团队的偏好。总的来说,Go语言在IoC和依赖注入方面可能没有像其他语言那样丰富的库支持,但通过适当的库选择和编码实践,仍然可以实现灵活和可维护的依赖关系管理。

2024-04-29 17:28:40 48

原创 go json转换int64丢精度,如何解决?

**使用`json.Number`类型**:在解析JSON时,可以使用`json.Number`类型来保留原始的数值表示,然后再根据需要转换为`int64`。1. **大整数**:如果JSON中的数字超出了`int64`的范围(-2^63 到 2^63-1),那么在转换时可能会丢失精度。- **手动处理**:在解析JSON之前,你可以手动检查数字的大小,如果超出了`int64`的范围,可以提前进行处理。3. **负数**:对于负数,如果它超出了`int64`的表示范围,转换时同样会丢失精度。

2024-04-29 17:24:18 139

原创 nodejs之strapi-proxy: 一个对接 strapi的解决方案

根据url确定权限的配置与鉴权,分为rest接口和graphql(strapi)接口,目前工程在strapi-proxy : hub合约域。nodejs支持es增删改查,特别是查询,Es index结构变化不用修改接口代码。graphql接口完全由模型驱动,也就是结构变化不用修改接口。,此问题不解决strapi,nodejs无法使用。Hub-strapi指向hub-proxy。Hub-proxy再指向strapi。// rest url鉴权名单。2020年12月29日星期二。rest白名单不需要鉴权。

2024-04-29 13:40:03 415

原创 nodejs之strapi介绍--聚合根可配置自动生成

6. **现代技术栈**:Strapi 使用了现代的 JavaScript 技术栈,包括 Node.js 和 React。5. **社区支持**:作为一个开源项目,Strapi 有一个活跃的社区,提供了大量的文档和支持。7. **响应式界面**:Strapi 提供了一个响应式的管理界面,可以在不同设备上使用。3. **性能**:由于其后端渲染的特性,Strapi 可以提供快速的页面加载速度。8. **多语言支持**:Strapi 支持多种语言,可以创建多语言的网站。

2024-04-29 13:34:16 324

原创 go nats一个主协程接收消息十个channel与十个协程处理消息

在这个示例中,我们首先创建了一个全局的channel数组`channelCh`,每个元素都是一个channel,用于接收从主协程转发的消息。5. **消息分发**:主协程接收到消息后,根据某种逻辑(例如,轮询、消息负载中的信息等)将消息分发到不同的channel。4. **创建处理协程**:为每个channel创建一个处理协程,这些协程将接收从主协程转发的消息。// 定义一个全局的channel数组,每个channel对应一个处理协程。// 将消息发送到选定的channel。

2024-04-29 09:53:14 361

原创 go nats消息request / response模式完整实现--未来实现nats消息统一应用框架

timeout: 10 * time.Second, //响应消息的主题。// 创建一个Subscription来监听特定的Subject。// 创建一个请求响应循环。

2024-04-28 23:07:30 380

原创 曲面屏有什么好

6. **屏幕保护膜适配**:随着技术的发展,现在有更多为曲面屏设计的屏幕保护膜,可以更好地保护屏幕。- **兼容性问题**:一些手机壳和屏幕保护膜可能不完全适配曲面屏,这可能限制了用户的个性化选择。3. **减少反光**:曲面屏的设计有助于减少屏幕的反光,提高在不同光线条件下的可视性。- **成本**:曲面屏的制造成本通常高于平面屏,这可能导致设备的整体价格更高。5. **减少误触**:由于屏幕边缘是弯曲的,可以减少在手持设备时的误触。

2024-04-28 09:45:39 121

原创 nats消息如何解决重复消费 消费顺序和丢消息问题

3. **使用 JetStream**:NATS JetStream 是 NATS 的一个模块,提供了消息持久化、消费者状态跟踪和消息确认功能,可以减少丢消息的风险。2. **消息去重**:在消息消费前,检查消息的唯一标识(如 ID 或业务键)是否已经被处理过,如果没有,则处理消息;3. **利用 NATS JetStream 的消费者标签**:为每个消息设置一个唯一的标签,消费者在处理消息后,可以使用标签来确认消息。3. **顺序消息**:在发送消息时,可以包含一个序列号,消费者按序列号顺序处理消息。

2024-04-28 09:16:23 355

原创 go协程合并多个channel数据

在这个例子中,我们创建了两个 channel `ch1` 和 `ch2`,以及一个用于合并数据的 `mergedCh`。然后,我们使用 `select` 语句来监听这两个 channel,当其中一个 channel 可以接收数据时,就将数据发送到 `mergedCh`。请注意,当所有发送的 channel 都被关闭后,`select` 语句中的相关 case 将不会执行,因为 `ok` 将为 `false`,这表示 channel 已经被关闭,并且不会再有数据发送。// ch1 已经关闭,跳出循环。

2024-04-28 00:50:25 392

原创 goframe功能介绍

11. **类型转换**:通过`gconv`模块,提供类型转换功能,支持基本数据类型、结构体等的转换。13. **工具类库**:提供了一系列工具类,如数组、集合、链表、树形、队列等数据结构的操作。4. **路由管理**:强大的路由管理系统,支持路由注册、路由规则、路由管理等。8. **配置管理**:支持多种格式的配置文件,如JSON、XML、YAML等。9. **日志管理**:提供日志记录和管理功能,支持日志级别、日志目录等设置。6. **请求处理**:提供请求输入、请求输出、文件上传、请求校验等功能。

2024-04-27 23:56:04 275

原创 go gconv有哪些功能?

1. **基本类型转换**:`gconv`支持将任何类型的变量转换为基本数据类型,如`int`、`float32`、`float64`、`bool`、`string`、`uint`、`int8`、`int16`、`int32`、`int64`、`uint8`、`uint16`、`uint32`、`uint64`等。2. **Slice类型转换**:可以转换为`[]byte`、`[]int`、`[]float64`、`[]string`和`[]interface{}`等。

2024-04-27 21:26:14 135

原创 go处理nats订阅消息响应是否需要channel缓存

2. **处理速度**:如果你的消息处理器速度较慢,无法及时处理所有接收到的消息,使用channel可以避免阻塞NATS订阅者。1. **消息量**:如果你预计会有大量的消息需要处理,使用channel作为缓冲区可以防止在高流量时丢失消息。3. **并发处理**:如果你需要并发处理消息,可以使用channel将消息分发给多个处理goroutine。4. **消息顺序**:如果你需要保持消息的处理顺序,使用channel可以帮助你按顺序处理消息。// 用于缓冲消息的channel。// 等待所有消息被处理。

2024-04-27 20:20:08 351

原创 go十个channel读写

如果你有10个`channel`,并且每个`channel`对应一个读写协程,这通常意味着你想要实现某种形式的并发处理,比如并行读取和写入数据。3. 为每个`channel`启动一个读协程,它会无限循环读取`channel`中的数据,直到`channel`被关闭。4. 为每个`channel`启动一个写协程,它会向对应的`channel`中写入5个值,然后关闭`channel`。下面是一个简单的例子,展示了如何创建10个`channel`,并为每个`channel`启动一个读取和写入的协程。

2024-04-27 20:13:02 278

原创 go协程如何实现超时机制

你可以创建一个带有超时的 `context`,然后将其传递给你的函数。有些第三方库提供了更高级的超时机制,比如 `errgroup`,它是 `sync.WaitGroup` 的一个扩展,支持超时和取消。如果你使用 `sync.WaitGroup` 来等待多个协程完成,你也可以结合 `time.After` 来实现超时。1. **使用 `time.After` 和 `select` 语句**3. **使用 `sync.WaitGroup` 和超时**2. **使用 `context.Context`**

2024-04-27 18:50:51 304

原创 go channel有缓冲和无缓冲之区别

如果为0,则表示无缓冲。无缓冲的channel上的发送和接收操作是同步的,而有缓冲的channel允许在缓冲区未满或未空的情况下进行异步操作。5. **关闭Channel**:无论是有缓冲还是无缓冲的channel,都可以使用`close(channel)`来关闭。6. **阻塞与非阻塞**:无缓冲的channel保证了操作的同步性,而有缓冲的channel则可能表现出非阻塞的行为,这取决于缓冲区是否满或空。2. **有缓冲Channel**:创建有缓冲channel时,需要指定元素类型和缓冲区的大小。

2024-04-27 18:46:01 281

原创 go es嵌套查询

你需要将 `your-index` 替换为你的索引名称,`nestedObject` 替换为你的嵌套路径,以及 `searchValue` 替换为你想要搜索的值。上述代码使用的是 `github.com/elastic/go-elasticsearch/v7`,它对应于 Elasticsearch 7.x 版本。如果你使用的是不同的版本,请确保导入相应的客户端库版本。Path: "nestedObject", // 替换为你的嵌套路径。Index: "your-index", // 替换为你的索引名称。

2024-04-27 16:26:38 384

原创 go协程使用channel

在这个例子中,`producer`函数向channel发送数据,而`consumer`函数从channel接收数据。你可以指定channel可以传递的数据类型,或者使用`chan`关键字来创建一个无类型的channel。channel := make(chan int, 2) // 创建一个缓冲区大小为2的channel。这是一个经典的生产者和消费者问题,生产者向channel发送数据,消费者从channel接收数据。close(channel) // 关闭channel。

2024-04-27 08:43:06 368

原创 Go全家桶规划之三: 短链接微服务实现goshorturl

/ @Failure 400 {object} string "请求错误"// @Failure 500 {object} string "内部错误"// @Success 200 {object} string "成功"// @Param shortCode path string true "短码"// @Tags 短链接服务。// @Description 根据服务。// @Summary 短长转换。

2024-04-27 00:22:14 355

原创 go swagger使用

3. **运行swag init**:在项目的根目录下运行`swag init`命令,这将解析你的注释并生成Swagger文档所需的文件,通常包括`docs`文件夹和`docs/docs.go`文件。- **字段命名策略**:使用`-p`参数指定结构体字段的命名规则,如`snakecase`、`camelcase`或`pascalcase`。9. **参数配置**:`swag init`命令支持多种参数,可以通过`-h`或`--help`来查看所有可用的参数。

2024-04-26 23:09:20 340

原创 go代码框架如何使用接口和组合

在这个示例中,`WebServer`和`Database`都是通过组合`BaseComponent`来实现`Component`接口的。这种方式允许它们重用`BaseComponent`的`Init`和`Shutdown`方法,同时还可以定义自己的特定行为。接下来,我们创建具体的组件,它们通过组合嵌入`BaseComponent`来继承其行为,并且可以添加额外的行为。通过接口和组合,Go语言提供了一种灵活的方式来构建组件化系统,这种方式强调了代码的可重用性和可组合性。// 启动Web服务器的逻辑。

2024-04-26 21:17:08 336

原创 go代码如何继承,写给java转型程序员

在Go语言中,组合和继承是两种不同的设计模式,用于实现面向对象编程中的对象组合和类继承。在这个例子中,`Engine`实现了`Drive`方法,而`Car`通过嵌入`Engine`间接实现了`Drivable`接口。这样,任何类型只要实现了`Drive`方法,就可以被当作`Drivable`类型使用。在上面的代码中,`Car`类型通过嵌入`Engine`类型来组合功能。`Car`可以直接访问`Engine`的方法和属性,就像它们是`Car`的一部分一样。// 定义一个Car类型,它嵌入了Engine类型。

2024-04-26 21:15:36 406 1

原创 go socket简单编程

Go语言(通常称为Golang)是一种静态类型的编译型语言,由Google开发,它在网络编程方面表现出色,包括socket编程。Go语言提供了`net`包,这个包提供了丰富的网络编程接口,可以用于创建TCP、UDP等socket连接。服务器监听8080端口,接受客户端的连接,并打印接收到的数据。客户端连接到服务器,发送一条消息,并打印从服务器接收到的响应。此外,Go语言还支持UDP、Unix套接字等其他类型的socket编程,具体实现方式与TCP类似,但细节上有所不同。// 输出接收到的数据。

2024-04-26 20:47:41 381

原创 测试方案与测试计划区别

**测试方案**:可能包括测试类型(如单元测试、集成测试、系统测试等)、测试阶段、测试工具和技术的选择、测试数据的来源和处理、测试环境的设置等。- **测试计划**:包括具体的测试用例、测试脚本、测试环境的配置、测试执行的时间表、资源分配、风险评估、问题跟踪和报告机制等。- **测试计划**:面向执行测试的团队成员,包括测试工程师、开发人员和项目管理者,指导他们如何进行测试。- **测试计划**:包含具体的操作细节,是执行测试的蓝图,包括测试的每个步骤、测试数据、预期结果等。

2024-04-26 20:25:20 175

原创 AW自动化测试后端

1. **API调用和验证**:创建AW来封装对后端API的调用,包括发送请求、携带必要的参数、认证信息,并验证响应状态码、响应体数据等。7. **配置和环境管理**:封装环境配置相关的操作,如更改配置文件、管理测试环境状态等,以便于测试的部署和恢复。6. **数据生成**:开发AW用于生成测试所需的各种数据,包括合法数据和边界值,以全面测试后端逻辑。4. **性能测试**:构建AW来模拟高并发请求,以测试后端服务的性能和稳定性。- **Model**:负责数据和业务逻辑的管理,如数据库交互。

2024-04-26 10:17:59 205

原创 AW自动化测试

自动化测试中的AW(Action Word,动作关键字)是一种关键概念,它用于封装自动化测试中的操作步骤,使得测试脚本更加易于理解和维护。3. **验证页面跳转和页面加载时间**:AW还可以用于验证页面跳转是否正确以及页面加载时间是否在可接受的范围内。1. **验证页面元素的存在与否**:例如,在Web应用程序中,可以使用AW来验证某个按钮是否显示在页面上。2. **验证页面元素的属性和内容**:例如,验证某个文本框中的值是否等于预期值。

2024-04-26 10:17:08 281

原创 go语言从需求到实现

**架构设计**:确定系统的架构,如是否采用微服务架构、如何划分模块等。- **数据库设计**:如果项目需要持久化数据,需要设计数据库模型。- **初始化项目**:使用`go mod init`初始化模块。- 设置Go的工作环境,如`GOPATH`和`GOROOT`。- **编写业务逻辑**:根据设计编写具体的业务逻辑代码。1. **需求分析**:明确项目的目标、功能需求、性能需求等。- **接口设计**:设计API接口,确定输入输出格式。- **编写测试**:编写单元测试和集成测试。

2024-04-26 10:00:06 375

原创 go并发编程有哪些方式

1. **Go Routines**:Go语言中最基本的并发单元是Go Routine。2. **Channels**:Channels是Go语言中用于在不同的Go Routine之间进行通信的管道。5. **Atomic Operations**:Go语言提供了一组原子操作函数,用于在不使用互斥锁的情况下,对共享资源进行安全的并发访问。6. **Context**:Context用于在并发运行的Go Routine之间传递请求范围的值,如取消信号、截止时间、生命周期等。// 并发执行的代码。

2024-04-26 09:47:46 473

原创 订阅nats消息go如何处理比较ok

2. **消息确认(Acknowledgement)**:在处理完消息之后,发送确认(ACK),这在确保消息被成功处理的同时,也避免了消息丢失或重复处理的问题。1. **异步处理**:使用异步订阅者(subscriber)来处理消息,这样不会阻塞消息接收的流程,允许消息连续不断地被接收和处理。3. **错误处理**:为消息处理函数添加错误处理逻辑,以便在消息处理失败时能够采取相应的措施,例如重试或记录日志。4. **日志记录**:在消息处理过程中记录关键的日志信息,这有助于调试和监控消息处理的状态。

2024-04-25 20:21:59 432

原创 go协程如何保证可靠性

main` 协程中的 `wg.Wait()` 调用会阻塞,直到所有的协程都调用了 `wg.Done()`。2. **同步和通信**:使用 Go 的内置同步原语,如互斥锁(sync.Mutex)、条件变量(sync.Cond)、原子操作(sync/atomic)等,来保护共享资源和同步协程。6. **避免竞态条件**:竞态条件发生在多个协程访问同一资源,并且至少一个协程在写入资源时。3. **等待协程完成**:使用 `sync.WaitGroup` 或者通道(channel)来等待所有协程完成它们的任务。

2024-04-25 19:47:40 271

原创 ES索引服务统一技术方案

req.EsTerms("dept_name", "若依科技", "kl")req.EsTerms("dept_name", "若依科技", "kl")批量:NewBulkIndexRequest。同步方式:Requst/Response模式。同步方式:Requst/Response模式。webclient不用配置,根据服务名找。webclient不用配置,根据服务名找。异步方式:同一个消息订阅者只消费一次。异步方式:同一个消息订阅者只消费一次。第一阶段ES服务设计与验证。第一阶段ES服务设计与验证。

2024-04-25 13:06:44 821 2

个性化推荐与活动配置方案

个性化推荐与活动配置方案

2024-04-04

gofactroy代码工厂生成python,go

go代码工厂

2024-04-04

JAVA工具factroy.rar

springcloud dubbo

2021-10-28

anfang.zip

安防系统安防系统

2019-07-29

rbtest my unit simp-le

ruby good test ,you can study!

2014-08-23

my java unit

java package com.myunit; import testapi.ITestAgent.TestLog; @TestClass public abstract class ITestFixture extends MyAssert implements ISubject { IObserver iobs = null; public ITestFixture() { } public ITestFixture(Class testClass) { MyTestSuite.RegTestSuite(testClass); } public void TestLog(String line) { TestLog.TestLog(line); } // public static RegTestcase regtc=new RegTestcase(new ITestFixture()); public abstract void setUp(); public abstract void tearDown(); public void run(MyTestResult result) { } public int countTestcase() { return 0; } public void log(String inf) { sendMessage(new StringBuffer(inf)); MyLog.log(inf); } @Override public void register(IObserver o) { iobs = o; } @Override public void sendMessage(StringBuffer inf) { if (iobs != null) { iobs.action(inf); } } @Override public void unRegister(IObserver o) { iobs = o; } }

2011-11-06

mycppunit test frame

c++pragma once #include "itestfixture.h" #include "TestSuite.h" class CTestCase : public ITestFixture { //Register CPPUNIT_TEST_SUITE(CTestCase) CPPUNIT_TEST(test_demo_1) CPPUNIT_TEST(test_demo_2) CPPUNIT_TEST_SUITE_END() public: CTestCase(void); ~CTestCase(void); virtual void setUp(); virtual void tearDown(); void test_demo_1(); void test_demo_2(); // REG_TESTCASE(CTestCase::test_demo_1) // static CTestCase itestcase1("TestCase::test_demo_1", &CTestCase::test_demo_1 ); //static CTestCase itestcase1(std::string("TestCase::test_demo_1"), NULL); };

2011-11-06

my cpytest --python test frame

python test ''' Created on 2011-11-2 @author: ACER ''' import glob, os from testframe.TestSuite import * class PyTestRunner: @staticmethod def run(suite): TestSuite.run(suite) @staticmethod def autoloadModule( ): TestSuite.autoloadModule() @staticmethod def runAll( ): PyTestRunner.run( TestSuite.allsuites ) def main(): PyTestRunner.autoloadModule() PyTestRunner.runAll() if __name__ == '__main__': main() ''' '''

2011-11-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除