Julia 如何在safetestsets中使用单独的集合时消除代码重复性

Julia 如何在safetestsets中使用单独的集合时消除代码重复性,julia,Julia,我是朱莉娅的新手,我正试图为精灵编写测试。我正在使用安全测试集。它确实可以帮助我们在不同的集合中分离测试,但是现在有很多重复的代码,因为您不能访问集合范围之外的代码 例如,在下面的示例中,使用Genie,Genie.Assets正在重复 @safetestset "Assets functionality" begin @safetestset "Assets paths" begin using Genie, Genie.Assets

我是朱莉娅的新手,我正试图为精灵编写测试。我正在使用安全测试集。它确实可以帮助我们在不同的集合中分离测试,但是现在有很多重复的代码,因为您不能访问集合范围之外的代码

例如,在下面的示例中,使用
Genie
Genie.Assets
正在重复

@safetestset "Assets functionality" begin

  @safetestset "Assets paths" begin
    using Genie, Genie.Assets

    @test include_asset(:css, "foo")  == "/css/foo.css"
    @test include_asset(:js, "foo")   == "/js/foo.js"

    @test css_asset("foo") == css("foo") == "/css/foo.css"
    @test js_asset("foo") == js("foo") == "/js/foo.js"
  end;

  @safetestset "Expose settings" begin
    using Genie, Genie.Assets

    @test js_settings() == "window.Genie = {};\nGenie.Settings = {\"webchannels_autosubscribe\":true,\"server_host\":\"127.0.0.1\",\"webchannels_subscribe_channel\":\"subscribe\",\"server_port\":8000,\"webchannels_default_route\":\"__\",\"webchannels_unsubscribe_channel\":\"unsubscribe\",\"websockets_port\":8001}\n"
  end

  @safetestset "Embedded assets" begin
    using Genie, Genie.Assets

    @test channels()[1:18] == "window.Genie = {};"
    @test channels_script()[1:27] == "<script>\nwindow.Genie = {};"

    @test channels_support() == "<script src=\"/__/channels.js?v=$(Genie.Configuration.GENIE_VERSION)\"></script>"
    @test Genie.Router.routes()[1].path == "/__/channels.js"
    @test Genie.Router.channels()[1].path == "/__/unsubscribe"
    @test Genie.Router.channels()[2].path == "/__/subscribe"

    @test favicon_support() == "<link rel=\"icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />"
  end

end;
@safetestset“资产功能”开始
@安全测试集“资产路径”开始
使用精灵,精灵,资源
@测试包括_资产(:css,“foo”)==“/css/foo.css”
@测试包括_资产(:js,“foo”)==“/js/foo.js”
@测试css_资产(“foo”)==css(“foo”)==“/css/foo.css”
@测试js_资产(“foo”)==js(“foo”)==“/js/foo.js”
结束;
@安全测试集“公开设置”开始
使用精灵,精灵,资源
@测试js\u settings()==“window.Genie={};\nGenie.settings={“网络频道自动订阅”:true,“服务器主机”:“127.0.0.1\”,“网络频道订阅频道”:“订阅”,“服务器端口”:“8000”,“网络频道默认路由”:“取消订阅频道”:“取消订阅”,“网络频道取消订阅频道”:“取消订阅”,“网络频道端口8001\”
结束
@安全测试集“嵌入式资产”开始
使用精灵,精灵,资源
@测试通道()[1:18]==“window.Genie={};”
@测试通道\u脚本()[1:27]==“\nWindows.Genie={};”
@测试通道\u支持()
@测试Genie.Router.routes()[1]。路径=“/\uu\u/channels.js”
@测试Genie.Router.channels()[1]。路径=“/\uuuu/取消订阅”
@测试Genie.Router.channels()[2]。路径==“/\uuuu/订阅”
@测试favicon_支持()
结束
结束;

因为
@safetestset
为每个
TestSet
创建了一个新模块,所以每个
都需要使用与模块相同的
语句

它被设计为隔离测试集,因此通过设计每个语句都需要导入它使用的模块


从我看到其他人如何使用
@safetestset
(例如),@safetestset通常会将
include
包装到脚本中,并确保该脚本独立运行,避免出现类似这样的问题。

谢谢你,max。感谢你解释julialang对话链接的错误