标签: mirage


使用 Vue 和 Cypress 测试时出现 Mirage 未定义错误(未定义路由)

我在 Vue CLI 应用程序中运行 Cypress,最近添加了 Mirage 来扩展我的数据库的模拟。我按照Mirage 的快速入门教程在 Cypress 中使用它,现在我正在尝试重写我的登录测试。应用程序中的登录使用对 API 端点 /oauth/token 的 POST 请求,但在 Cypress/Mirage 中,它失败了

"Mirage: Your app tried to POST 'http://localhost:8090/oauth/token', but there was no route defined to handle this request. Define a route for this endpoint in your routes() config. Did you forget to define a namespace?"
Run Code Online (Sandbox Code Playgroud)

看起来好像来自 server.js 中的 paths() 挂钩的路由没有注册到服务器:

import { Server, Model } from 'miragejs'

export function makeServer({ environment = 'development' } = {}) {
  let server = new …
Run Code Online (Sandbox Code Playgroud)

automated-tests vue.js mirage vue-cli cypress

9
推荐指数
1
解决办法
6827
查看次数

MirageOS - 无法为XEN构建unikernel

我编写了一个简单的基于MirageOS的Unikernel来执行基本的HTTP GET调用.虽然当我将它作为Unix二进制文件运行时它没有任何问题,但是当我为XEN(mirage configure --xen)配置它并启动make命令时,我得到以下错误:

ocamlbuild -use-ocamlfind -pkgs lwt.syntax,cohttp.lwt,cohttp.lwt-core,mirage-console.xen,mirage-http,mirage-types.lwt -tags "syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -tag-line "<static*.*>: -syntax(camlp4o)" -cflag -g -lflags -g,-linkpkg,-dontlink,unix main.native.o
+ ocamlfind ocamlopt -g -linkpkg -dontlink unix -output-obj -package mirage-types.lwt -package mirage-http -package mirage-console.xen -package cohttp.lwt-core -package cohttp.lwt -package lwt.syntax -syntax camlp4o unikernel.cmx main.cmx -o main.native.o
File "_none_", line 1:
Error: No implementations provided for the following modules:
         Unix referenced from /home/mirage/.opam/system/lib/lwt/lwt-unix.cmxa(Lwt_engine),
           /home/mirage/.opam/system/lib/lwt/lwt-unix.cmxa(Lwt_unix),
           /home/mirage/.opam/system/lib/lwt/lwt-unix.cmxa(Lwt_io),
           /home/mirage/.opam/system/lib/lwt/lwt-unix.cmxa(Lwt_log),
           /home/mirage/.opam/system/lib/ipaddr/ipaddr_unix.cmxa(Ipaddr_unix),
           /home/mirage/.opam/system/lib/xenstore_transport/xenstore_transport_lwt_unix.cmxa(Xs_transport_lwt_unix_client),
           /home/mirage/.opam/system/lib/conduit/conduit-lwt-unix.cmxa(Conduit_lwt_unix),
           /home/mirage/.opam/system/lib/cohttp/cohttp_lwt_unix.cmxa(Cohttp_lwt_unix_debug),
           /home/mirage/.opam/system/lib/cohttp/cohttp_lwt_unix.cmxa(Cohttp_lwt_unix)
Command exited with code 2.
Compilation unsuccessful after …
Run Code Online (Sandbox Code Playgroud)

xen ocaml unikernel mirage

5
推荐指数
1
解决办法
135
查看次数

如何构建Mirage OS的Xen unikernel

我阅读本文档(http://openmirage.org/wiki/hello-world)并尝试构建一个xen unikernel,如下所示:

mirage configure --xen
make depend
make    
Run Code Online (Sandbox Code Playgroud)

但编译失败:

ocamlbuild -classic-display -use-ocamlfind -pkgs lwt.syntax,mirage-console.xen,mirage-types.lwt -tags "syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -tag-line "<static*.*>: -syntax(camlp4o)" -cflag -g -lflags -g,-linkpkg,-dontlink,unix main.native.o
ocamlfind ocamldep -package mirage-types.lwt -package mirage-console.xen -package lwt.syntax -syntax camlp4o -modules main.ml > main.ml.depends
ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence -package mirage-types.lwt -package mirage-console.xen -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
ocamlfind ocamlopt -c -g -annot -bin-annot -principal -strict-sequence -package mirage-types.lwt -package mirage-console.xen -package lwt.syntax -syntax camlp4o -o main.cmx main.ml
pkg-config --print-errors …
Run Code Online (Sandbox Code Playgroud)

xen opam unikernel mirage

3
推荐指数
2
解决办法
436
查看次数

海市蜃楼OS在OCaml中实现了linux内核吗?

海市蜃楼是使用OCaml而不是C的unix内核的新实现吗?或者海市蜃楼只在Ocaml中实现了unix内核的一部分?

谢谢.

operating-system unikernel mirage

3
推荐指数
1
解决办法
332
查看次数

如何处理所有这些函子

我来这里是为了别的东西,但试图写下我的问题,我意识到我没有办法做到这一点。我已经使用 mirage 和 irmin 一段时间了,只要所有代码都保留在 Main 模块中,一切都很棒。但是,当然,它很快就会变成一个大得离谱的文件,并且试图将它拆分成模块让我对类型逃逸其作用域之类的东西感到抓狂。

不是仅仅将控制台从 start 传递给其他一些函数,我必须将那些其他函数放在一个函子中,该函子将接受Mirage_types_lwt.CONSOLE实际的控制台变量,这意味着一切最终都在从头开始实例化的函子中,并以一个无法阅读的混乱代码。

我在制作一个巨大的丑陋模块来轻松存储和传递所有这些时遇到了问题(从常规代码中“隔离”需要这些混乱的部分),而且我无法弄清楚如何声明这样的东西:

module type ContextConfig = sig
  module Store
  val clientctx : Client.ctx
  ....
end

let mkContextConfig (module Store : Repo) ctx =
  (module struct
    (module Store : Repo)
    let clientctx = ctx
  end : ContextConfig)
Run Code Online (Sandbox Code Playgroud)

(Repo 是我用来包装 Irmin 函子的模块)。这显然不起作用,我尝试了很多语法,我猜这是不可能的,这意味着我做错了什么?

我希望得到有关以干净的方式处理所有这些函子和类型的正确方法的建议,我如何传递诸如控制台或管道之类的东西,而不必对 Main 模块中的所有内容进行函子化和实例化来传递它约后?

ocaml mirage

1
推荐指数
1
解决办法
82
查看次数