如何解决如何在 Visual Studio for Mac 上使用 Sikuli4Net 或 SikuliSharp 在 MacOS 上测试 .NET Core 跨平台应用程序?
我有一个用 Xamarin.Forms 编写的跨平台桌面应用程序,它可以在 Windows 和 MacOS 中运行。我想在该应用程序之上进行一些 UI 自动化。
经过一些研究,似乎对跨平台最友好的选择是使用像 Sikuli 这样的东西。由于我们团队的默认堆栈以 .NET 堆栈为中心,我们希望使用 SikuliSharp 或 Sikuli4Net 来执行自动化 UI 测试。
然而,尽管事实上我们已经能够在 Windows 上成功运行 Sikuli4Net,到目前为止自动化了几个流程。我们在 MacOS 上的情况很糟糕。我们的团队(包括我自己)对 Java 应用程序的了解并不多(或者可能根本没有)。
我已经安装了 JDK 8,但无法像在 Windows 上那样运行测试。代码生成了,但环境中似乎缺少某些东西。
在像这样启动 APILauncher 时使用 Sikuli4Sharp:
add_action( 'woocommerce_before_customer_login_form','next_day_delivery' );
add_action( 'woocommerce_before_customer_login_form','next_day_delivery' );
add_action( 'woocommerce_before_checkout_form','next_day_delivery' );
add_action( 'woocommerce_before_shop_loop','next_day_delivery' );
add_action( 'woocommerce_before_single_product_summary','next_day_delivery' );
add_action( 'woocommerce_before_cart','next_day_delivery' );
function next_day_delivery() {
if( WC()->cart->is_empty() )
return; // Exit
// Set the time zone
date_default_timezone_set('Europe/Paris');
// From Monday to Thursday
$is_week_days = in_array( date('w'),array( 3,4,5,6,0 ) ) ? true : false;
$is_monday = date('w') == 1 ? true : false; // Monday
$is_tuesday = date('w') == 2 ? true : false; // Tuesday
$end_time = mktime('21','00',date('m'),date('d'),date('Y'));
$now_time = time();
$after_tomorow = date('l',strtotime('+2 days'));
$dateDiff = intval(($end_time - $now_time)/60);
$diff_hours = intval($dateDiff/60);
$diff_minutes = $dateDiff%60;
$hours_label = _n( 'heure','heures',$diff_hours,'wooocommerce' );
$minutes_label = _n( 'minute','minutes',$diff_minutes,'wooocommerce' );
if ( $is_monday && $now_time or $is_tuesday && $now_time < $end_time ) {
// print the information notice
$message = sprintf( __( '%s left to be delivered tomorrow!','woocommerce' ),$diff_hours.' '.$hours_label.' and '.$diff_minutes.' '.$minutes_label);
}
elseif ( $end_time <= $now_time && $is_week_days ) {
$message = sprintf( __( 'Your order will be delivered this %s.',$after_tomorow );
} else {
$message = __( 'Your order will be prepared and shipped next upcoming monday and delivered on tuesday.','woocommerce' );
}
wc_print_notice( $message,'success' );
}
我收到以下错误:
使用 SikuliSharp 尝试在我们的软件上运行简单的演示应用程序时出现此错误:
我已尝试使用此答案作为参考来设置 SIKULI_HOME 环境变量,但仍然存在同样的问题(并且我确实重新启动了控制台和 IDE,甚至是我的机器)。
当我在终端上运行 launch = new APILauncher(true);
launch.Start();
时,我确实得到了包含 .jar 文件的目录:
所以我对要从这里走感到有点迷茫。这些问题让我不确定是否可以在 MacOS 环境中运行 Sikuli4Net 或 SikuliSharp。是这种情况吗?如果没有,我做错了什么?
解决方法
如错误消息中所述:sikuli-script.jar 丢失。
您必须检查您的 SikuliSharp 或 Sikuli4Net 所依赖的 Sikuli/SikuliX 版本。
毫无疑问,您必须深入了解这些 Net 软件包的来源。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。