关于TestComplete的学习

本文解答了一位初学者关于TestComplete6的问题,介绍了该工具在自动化功能测试中的应用,并强调了仅录制脚本不足以实现自动化测试的目标。文章还提供了一些学习资源和作者的博客链接。

最近有人问到有关TC的学习问题,摘录如下:

 

[b]原始短消息:[/b] [url=http://bbs.51testing.com/pm.php?action=view&folder=inbox&pmid=2764233]關於使用TestComplete6[/url]
[quote]你好:
    最近公司開始嘗試使用TestComplete6,要我先學習一下,但我看了兩天都沒什麼頭头緒,網上的資料很少,他自带的文檔又是英文的,看不明白。:L
        想問一下你能否簡單說明TestComplete的作用嗎?他能實現哪些操作?通常是用錄制和回放的功能嗎?還有在哪里有更多的資料可供參考?
    先謝了!:handshake[/quote]

 

哈哈,首先感谢你的咨询。

你们公司开始尝试使用TC,这是件好事,TC虽然不那么出名、也没有QTP那么简单易用,但是胜在便宜(一般的中小型软件企业、甚至个人用户都能承受的价格)。你应该乘此机会好好学习TC以及自动化测试方面的内容。

TC没有在国内大面积地推广和宣传,研究的人也不多,所以中文资料比较匮乏,英文帮助文档是必须查阅和学习的(要克服E文恐惧感),通过结合TC附带的例子去尝试、试验、调试的方式来学习。

关于TestComplete的作用,很明显是用于实现自动化的功能测试了。但是仅仅录制脚本是远远达不到实现自动化测试的要求的,必须进一步参数化,适当调整录制下来的脚本,让其更通用、更容易维护。

最近在用TC做一个自动化测试项目,有空会总结出一些东西来跟大家分享的。请留意我的博客:
http://blog.youkuaiyun.com/Testing_is_believing/category/332639.aspx

 

<think>我们正在讨论git revert命令,用户要求详解其作用和使用方法。 根据引用[1]和引用[2]的内容,我们可以总结如下: 作用: git revert 用于撤销某个提交引入的更改,但它不是通过删除提交,而是通过创建一个新的提交来反转指定提交的更改。 这样做的好处是保留了提交历史的完整性,特别适用于已经推送到远程仓库的提交,因为修改历史(如git reset)可能会破坏协作。 使用场景: - 撤销一个错误的提交,且这个提交已经公开(推送到远程仓库)。 - 在公共分支(如master/main)上安全地撤销更改。 基本用法git revert <commit-hash> # 撤销指定的提交 高级用法: - 撤销多个非连续的提交:可以一次性指定多个提交进行撤销,但通常建议一个一个地处理以避免冲突。 git revert -n <commit1> <commit2> ... # -n 或 --no-commit 表示不自动提交,这样你可以一次性提交多个撤销 git commit -m "撤销多个提交" - 撤销多个连续的提交:使用区间表示法,注意区间是左开右闭(即不包括起始提交,包括结束提交)。通常我们使用前一个提交到结束提交(即起始提交是结束提交的前一个提交的父提交)?实际上,区间写法是:`<commit1>..<commit2>`,表示从commit1之后(不包括commit1)到commit2(包括commit2)的所有提交。但是注意,revert会按从新到旧的顺序撤销,以避免冲突。但有时可能需要按从旧到新,所以使用-n可以让我们自己控制顺序。 - 取消正在进行的revert操作(比如遇到冲突时): git revert --abort - 处理合并提交的撤销:使用-m选项指定要保留的主线(parent编号,通常为1或2) git revert -m 1 <merge-commit-hash> # 例如,撤销一个合并提交,需要指定保留哪个分支的改动 注意事项: - revert可能会引起冲突,需要手动解决冲突后,使用`git revert --continue`(或者先`git add`解决的文件,然后`git commit`,但如果使用了-n,则只需要手动提交)。 - 默认情况下,revert会打开编辑器让你编辑提交信息,也可以使用`--no-edit`跳过编辑。 示例: 1. 撤销单个提交: git revert a1b2c3d 2. 撤销多个提交(非连续): git revert -n a1b2c3d e4f5g6h # 撤销两个提交,不自动提交 git commit -m "Revert two commits" 3. 撤销连续的提交(从提交A到提交B,注意不包括A,包括B): git revert -n A..B # 注意:A应该比B更早(即A是B的祖先),这里会撤销从A之后到B的所有提交(包括B) # 然后提交 git commit -m "Revert commits from A to B" 4. 撤销合并提交: git revert -m 1 <合并提交的哈希> # 保留主线(通常是合并时所在的分支,即第一个父提交) 引用标识: 我们在回答中会引用引用[1]和引用[2]的内容。 同时,我们也要注意用户之前的问题是关于git log的,现在转向revert,所以不需要再提log。 根据要求,我们需要生成相关问题,放在回答的最后。 回答结构: - 先解释作用 - 使用场景 - 基本语法和常用选项 - 示例 - 注意事项 - 相关问题</think>### Git revert 详解:安全撤销提交的完整指南 `git revert` 是 Git 中用于**安全撤销提交**的核心命令,它通过创建新的提交来反向抵消指定提交的更改,**不会破坏提交历史**(尤其适用于公共分支)。以下是详细解析: --- #### 一、核心作用与原理 1. **安全撤销** - 撤销某次提交的更改,但保留该提交在历史记录中(不重写历史)。 - 生成一个**新的提交**(称为 Revert Commit),内容是指定提交的逆向操作。 - 示例:撤销提交 `a1b2c3d`: ```bash git revert a1b2c3d # 创建新提交,反向应用 a1b2c3d 的改动 ``` [^1][^2] 2. **与 `git reset` 的区别** | **特性** | `git revert` | `git reset` | |------------------|----------------------------|----------------------------| | 历史记录 | 保留原提交,新增 Revert 提交 | 直接删除原提交 | | 适用场景 | 公共分支(如 main) | 本地未推送分支 | | 协作影响 | 安全,不破坏他人历史 | 需强制推送,可能破坏协作 | --- #### 二、关键参数与用法 1. **基础撤销** ```bash git revert <commit-hash> # 撤销单次提交 ``` - 自动打开编辑器填写 Revert 提交信息,可用 `--no-edit` 跳过: ```bash git revert --no-edit a1b2c3d ``` 2. **批量撤销多个提交** - **非连续提交**(撤销多个独立提交): ```bash git revert -n commit1 commit2 # -n 表示不自动提交 git commit -m "Revert multiple commits" ``` - **连续提交**(撤销一个区间): ```bash git revert -n older-commit..newer-commit # 左开右闭区间 git commit -m "Revert commit range" ``` [^2] 3. **撤销合并提交** 合并提交有多个父节点,需用 `-m` 指定主线分支: ```bash git revert -m 1 <merge-commit-hash> # -m 1 保留第一个父分支的改动 ``` [^1] 4. **冲突处理** - 遇到冲突时: - 手动解决冲突 → `git add` 标记已解决 → `git revert --continue` - 取消撤销过程: ```bash git revert --abort # 完全放弃本次 revert ``` [^2] --- #### 三、最佳实践场景 1. **修复已推送的错误提交** ```bash git revert bad-commit # 安全生成反向提交 git push origin main # 直接推送,无需强制 ``` 2. **撤销中间历史提交** 例如撤销历史中的某次提交(非最近): ```bash git log --oneline # 查找要撤销的提交哈希 git revert 5a3b2c1 # 撤销指定提交 ``` 3. **临时撤销并测试** ```bash git revert -n HEAD~3 # 撤销最近第3次提交(不自动提交) # 测试代码... git revert --abort # 测试后放弃撤销 ``` --- #### 四、注意事项 1. **顺序问题** - 批量撤销时,Git 默认按**从新到旧**的顺序执行(避免依赖冲突)。 - 手动控制顺序需分步执行 `git revert`。 2. **合并提交风险** - 撤销合并提交可能引入复杂依赖,需明确指定 `-m` 参数[^1]。 3. **替代方案** - 仅本地未推送提交 → 用 `git reset HEAD~1`(不破坏远程历史)。 > **工作流示例**: > ```bash > # 撤销过去3天内的某个错误提交 > git log --since="3 days ago" --oneline # 查找提交哈希 > git revert --no-edit a1b2c3d # 快速撤销 > ``` [^1]: Gitrevert“ 命令详解 [^2]: git reset和git revert详解
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值