Flutter Jira集成插件jira_teko_flutter的使用
Flutter Jira 集成插件 jira_teko_flutter 的使用
简介
本库可用于将本地测试用例推送到 Jira Teko 项目中。
设置
在使用此库之后,您必须从 pub.dev 安装库 <code>junitreport</code>
:
dart pub global activate junitreport
在项目中创建文件 .env
:
JIRA_USER_NAME=您的 Jira 用户名
JIRA_PASSWORD=您的 Jira 密码
JIRA_ISSUES=issue1,issue2,...
在项目的 test
文件夹中创建文件 jira.dart
。
在 jira.dart
文件中设置您的 Jira 项目信息和 Jira Teko 账户信息:
import 'package:jira_teko_flutter/jira_teko_flutter.dart'
show JiraTekoProjectInfo, JiraTekoFlutter, JiraTekoRunnerOption, TestCaseStatus;
import 'package:jira_teko_flutter/src/helpers/read_file_env.dart' as read_env;
void main() async {
/// 使用推送测试到 Jira
///
/// 例如:您正在测试问题 P365MOB-434 并希望将其推送到 Jira。
/// * 将 'P365MOB-434' 添加到问题列表:issues = ['P365MOB-434']
/// * 并运行文件:dart test/jira.dart
/// * 所有结果测试用例将写入文件 export_result_test.json
///
/// ** 注意:当您提交代码时,请确保 issues 为空。
/// 使用 .env 文件设置用户名、密码、问题
final Map<String, String> dataEnv = await read_env.readFileEnv('.env');
final List<String> issues = (dataEnv["JIRA_ISSUES"] ?? "").split(",");
JiraTekoFlutter.setProjectInfo(
JiraTekoProjectInfo(
scheme: 'https',
host: 'jira.teko.vn',
jiraUserName: dataEnv['JIRA_USER_NAME'] ?? '',
/// 您的 Jira 用户名
/// ** 注意:当您提交代码时,请确保 jiraPassword 为空。
jiraPassword: dataEnv['JIRA_PASSWORD'] ?? '',
/// 您的 Jira 密码
/// ** 注意:当您提交代码时,请确保 projectKey 为空。
projectKey: '', // 您的项目键
projectId: 12345, // 您的项目 ID
folder: '/HN1234/abc/xyz/', // 特定重定向 URL
),
);
JiraTekoFlutter.setJiraOptions(
JiraTekoRunnerOption(
statusTestCase: TestCaseStatus.draft, /// 当创建测试用例时,设置其默认状态(默认:草稿)
createCycle: true, /// 自动创建测试周期(默认:true)
),
);
final JiraTekoFlutter jiraTekoFlutter = JiraTekoFlutter(
issues: issues,
);
jiraTekoFlutter.run();
}
运行
通过运行以下命令:
dart run test/jira.dart
它将运行所有与 .env
文件中声明的问题列表相关的测试用例。
在文件 _test.dart
中:
/// 测试标题
/// 名称: 您的任务名称
/// 目标:
/// 前提条件:
/// Confluence 链接:
/// 文件夹:
/// 网页链接:
/// 测试脚本:
void main() {
group('组名称:', () {
test("测试 1", () async {});
test('测试 2', () async {});
test('测试 3', () async {});
});
}
结果将导出到 test
文件夹中的 export_result_all_test.json
文件中。
{
"您的任务名称": [
{
"名称": "组名称: 测试 1",
"状态": "通过",
"ID": 1029703
},
{
"名称": "组名称: 测试 2",
"状态": "通过",
"ID": 1029703
},
{
"名称": "组名称: 测试 3",
"状态": "通过",
"ID": 1029703
}
]
}
更多关于Flutter Jira集成插件jira_teko_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter Jira集成插件jira_teko_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中集成并使用jira_teko_flutter
插件的一个基本示例。请注意,jira_teko_flutter
插件的具体API和功能可能会根据版本的不同而有所变化,因此请参考最新的官方文档以获取最准确的信息。
首先,确保你已经在Flutter项目中添加了jira_teko_flutter
依赖。打开你的pubspec.yaml
文件,并添加以下依赖:
dependencies:
flutter:
sdk: flutter
jira_teko_flutter: ^最新版本号 # 请替换为实际的最新版本号
然后,运行flutter pub get
以获取依赖。
接下来,你需要在Flutter应用中配置和使用这个插件。以下是一个简单的示例,展示了如何初始化插件并进行基本的API调用(假设插件支持这些功能)。请注意,实际使用时需要根据插件提供的API文档进行调整。
import 'package:flutter/material.dart';
import 'package:jira_teko_flutter/jira_teko_flutter.dart'; // 导入插件
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
JiraClient? _jiraClient;
@override
void initState() {
super.initState();
// 初始化JiraClient,这里需要你的Jira实例的URL和API Token
String jiraUrl = 'https://your-jira-instance.atlassian.net';
String apiToken = 'your-api-token';
_jiraClient = JiraClient(baseUrl: jiraUrl, apiToken: apiToken);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Jira Integration Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: () async {
if (_jiraClient != null) {
try {
// 示例:获取当前用户信息
User? user = await _jiraClient!.getUserInfo();
if (user != null) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('User: ${user.displayName}')),
);
}
} catch (e) {
print('Error fetching user info: $e');
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Error: ${e.message}')),
);
}
}
},
child: Text('Get User Info'),
),
),
),
);
}
}
// 假设JiraClient和User类如下(实际使用时请参考插件文档)
class JiraClient {
final String baseUrl;
final String apiToken;
JiraClient({required this.baseUrl, required this.apiToken});
Future<User?> getUserInfo() async {
// 这里应该是实际的API调用逻辑,使用http或其他网络库
// 例如:
// final response = await http.get('$baseUrl/rest/api/latest/myself', headers: {
// 'Authorization': 'Bearer $apiToken',
// });
// if (response.statusCode == 200) {
// return User.fromJson(jsonDecode(response.body));
// } else {
// throw Exception('Failed to fetch user info');
// }
// 由于我们没有实际的API调用,这里返回一个模拟的用户对象
return User(displayName: 'John Doe');
}
}
class User {
String? displayName;
User({this.displayName});
// fromJson是假设的方法,用于从JSON数据反序列化User对象
factory User.fromJson(Map<String, dynamic> json) {
return User(displayName: json['displayName'] as String?);
}
}
注意:
- 上面的代码示例中,
JiraClient
和User
类是根据假设创建的,因为jira_teko_flutter
插件的实际API和类结构可能不同。你需要根据插件的文档来调整这些类和方法。 - 实际的API调用(如获取用户信息)需要使用HTTP客户端(如
http
包)来发送请求,并处理响应。上面的示例中为了简化而省略了这些部分。 - 请确保你的Jira实例允许使用API Token进行身份验证,并根据需要配置Jira的API权限。
为了获取最新的和详细的API信息,请查阅jira_teko_flutter
插件的官方文档和示例代码。