有没有办法运行ng test单个文件而不是整个测试套件?理想情况下,我想在编辑文件时获得最快的反馈循环,但是karma在每次保存时执行整个套件,这在构建足够大的测试套件时有点慢.
当终端/控制台测试运行实际上以红色或绿色文本显示其输出时,我喜欢它.看起来很多可用于Go的测试库都有这个.但是,我想使用Go附带的默认测试包.有没有办法用红色和绿色为它的输出着色?
Phoenix scrub_params方法的文档对我来说有点不清楚.看起来这个功能类似于Rails强参数功能.但是,当你在像这样的控制器中使用它时,
plug :scrub_params, "user" when action in [:create]
Run Code Online (Sandbox Code Playgroud)
...您没有明确说明要将哪些参数列入白名单.我已经查看了代码scrub_params,但是我对Elixir的说法非常苛刻,我不太确定发生了什么.
此方法只是查看模型并使用必需和可选的字段模块属性来列入白名单参数吗?
此外,scrub_params文档说"检查required_key是否存在".什么是"必需的钥匙"?这只是模型中的必填字段吗?
在新的Programming Phoenix书中,Chris McCord说这是关于使用字符串和原子键来控制器动作参数:
在我们控制器的world动作中,外部参数有字符串键,"name"=> name,而在内部我们使用name:name.这是整个凤凰城遵循的惯例.外部数据是不安全的,所以我们明确匹配的字符串键,然后我们的应用程序边界像控制器和渠道将它们转换成原子键,我们将依靠其他地方里面凤凰.
但是,我不清楚为什么使用字符串键比原子键更安全.为什么字符串键在这里更安全?
我正在尝试使用Xcode中的调试器来解决我的一个方法.该应用程序非常简单,只是此时的一个示例类.当我设置断点并运行时,LLDB调试器窗格将按预期在Xcode中打开.但是,如果我尝试在我的方法中执行打印命令,我会收到以下错误:
Error in auto-import:
Failed to load linked library Cocoa of module ExampleAppTests - errors:
Looking for "@rpath/Cocoa.framework/Cocoa", error: not a string object
Looking for "/Users/Elliot/Library/Developer/Xcode/DerivedData/ExampleApp-aqpflidffjffyzdxfjdfbjijvsxq/Build/Products/Debug/Cocoa.framework/Cocoa"
, error: not a string object
Looking for "/BinaryCache/arclite/arclite-49.1~7/Symbols/BuiltProducts/Cocoa.framework/Cocoa"
, error: not a string object
Looking for "/Applications/Xcode6-Beta6.app/Contents/Developer/Library/PrivateFrameworks/Cocoa.framework/Cocoa"
, error: not a string object
Looking for "/Applications/Xcode6-Beta6.app/Contents/Developer/Library/Frameworks/Cocoa.framework/Cocoa"
, error: not a string object
Looking for "/Applications/Xcode6-Beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks/Cocoa.framework/Cocoa"
, error: not a string object
Looking for "/Applications/Xcode6-Beta6.app/Contents/SharedFrameworks/Cocoa.framework/Cocoa"
, error: not a string object
Run Code Online (Sandbox Code Playgroud)
如果我输入repl并执行命令,我会得到同样的错误.
Rails.root凤凰城有类似的东西吗?假设我想在Phoenix应用程序中使用配置文件.查找脚本中使用的文件和路径的约定是什么?
使用亚马逊的API网关我可以创建一个端点来调用输出纯文本的lambda函数.但是,当我在端点上发出请求时,输出将返回默认内容类型"application/json".这将输出包含在引号中的纯文本响应.我想将响应标题更改为"text/plain",因此它只输出用引号打开的文本.有谁知道如何做到这一点?
为什么在Ecto changeset方法中将params设置为默认:empty原子?例如
def changeset(user, params \\ :empty) do
...
Run Code Online (Sandbox Code Playgroud)
这是否允许您使用nil为变量调用changeset方法?
我在我的虚拟博客凤凰应用程序中创建了一组验收测试.他们之间有一些重复的逻辑我想转移到帮手模块以保持干燥.
这是目录结构:
test/acceptance/post
??? create_test.exs
??? delete_test.exs
??? helpers.exs
??? index_test.exs
??? update_test.exs
Run Code Online (Sandbox Code Playgroud)
该helpers.exs文件是我想坚持重复验收测试逻辑的地方.它看起来像:
defmodule Blog.Acceptance.Post.Helpers do
def navigate_to_posts_index_page do
# some code
end
end
Run Code Online (Sandbox Code Playgroud)
然后在我的一个测试文件中,比方说index_test.exs,我想导入帮助程序模块以使用它的方法:
defmodule Blog.Acceptance.Post.IndexTest do
import Blog.Acceptance.Post.Helpers
end
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误:
**(CompileError)test/acceptance/post/index_test.exs:7:模块Blog.Acceptance.Post.Helpers未加载且无法找到
如何在我的测试文件中访问或加载帮助程序模块?
我正在写一个快速的Elixir脚本,我想使用csv库依赖项.创建一个新的混合项目似乎有点过分,只是为这个库添加依赖管理.你会推荐什么?你会在混合项目路线中找到一个带有依赖关系的简单脚本吗?
注意:我不是在问全局如何安装和访问依赖项.问题是,"你会去混合项目路线......"建议的方法是什么?