我是 cypress 的新手,我正试图弄清楚事情是如何运作的。
我有自己的函数(调用测试控制器服务器来重置数据库)。它返回一个承诺,当数据库成功重置时完成。
function resetDatabase(){
// returns a promise for my REST api call.
}
Run Code Online (Sandbox Code Playgroud)
我的目标是能够在所有测试之前执行它。
describe('Account test suite', function () {
// how can I call resetDb here and wait for the result
// before the tests below are invoked?
it('can log in', function () {
cy.visit(Cypress.config().testServerUrl + '/Account/Login/')
cy.get('[name="UserName"]').type("admin");
cy.get('[name="Password"]').type("123456");
cy.get('#login-button').click();
});
// .. and more test
})
Run Code Online (Sandbox Code Playgroud)
我怎么能在柏树中做到这一点?
更新
我试过了
before(() => {
return resetDb(Cypress.config().apiServerUrl);
});
Run Code Online (Sandbox Code Playgroud)
但是后来我收到一条警告说:
赛普拉斯检测到您在测试中返回了一个承诺,但也在该承诺中调用了一个或多个 cy 命令
我不是cy在调用in resetDb()。
我试图弄清楚如何从TFS中的特定文件夹("$/theproject/trunk/setup /")获取文件列表,而不将它们放在本地文件夹中.
到目前为止,我已设法连接,创建工作区和工作文件夹:
var server = RegisteredTfsConnections.GetProjectCollection(new Uri("http://hostname:8080/"));
var projects = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(server);
var versionControl = (VersionControlServer)projects.GetService(typeof(VersionControlServer));
var workspace = versionControl.CreateWorkspace(AppDomain.CurrentDomain.FriendlyName + "-installer", versionControl.AuthorizedUser);
try
{
WorkingFolder folder = new WorkingFolder("$/theproject/trunk/setup/", "C:\\aTempFolder");
workspace.CreateMapping(folder);
//this would get all files to the local folder, right?
//what should I do instead to just get a file list?
workspace.Get();
}
finally
{
workspace.Delete();
}
Run Code Online (Sandbox Code Playgroud) 我们得到了一个特殊的多值属性.我们称之为ourOwnManagedBy可以包含管理当前组的用户或组(他们的DN).
如何检索特定用户管理的所有组的列表(借助managedBy和ourOwnManagedBy)?
例如.假设用户是GlobalAdministrators组的成员,并且ApplicationAdministrators组具有GlobalAdministrations作为成员.最后是ourOwnManagedBy属性中具有ApplicationAdministrators的组MyApplication .
User 是...的成员 GlobalAdministrators GlobalAdministrators 是...的成员 ApplicationAdministrators MyApplication得到ApplicationAdministrators的ourOwnManagedBy如何使用该信息查找特定用户管理的所有组?是否可以对自定义属性(包含用户和组的DN)进行某种递归检查?
更新
我试过使用这样的目录搜索过滤器:
string.Format("(ourOwnManagedBy:1.2.840.113556.1.4.1941:={0})", dn);
Run Code Online (Sandbox Code Playgroud)
但我可能会错过了什么1.2.840.113556.1.4.1941呢?(MSDN页面)
我正试图围绕领域驱动开发.我想确保我有一个良好的基础和理解它,所以如果在这里避免使用AutoMapper或类似的建议会很好.我的架构目前涉及以下内容:

WCF服务负责持久性(使用实体框架)和服务器端验证.它将POCO转换为DTO,并将DTO转移到客户端.
客户接收DTO并将其转换为POCO.转换POCO和DTO的类在服务和客户端之间共享.
POCO的实现IValidatableObject和INotifyPropertyChanged服务器和客户端都使用它们,但它们不用于数据传输.DTO是,只是不包含任何行为的财产袋.
(1)问题#1.此架构是否适用于域驱动设计.
(2)问题#2.POCO是否适合包含导航属性?对于POCO来说,在DDD架构中包含导航属性对我来说真的是错误的,因为对我来说,拥有可能序列化或不序列化的导航属性是没有意义的.拥有专门的DTO对我来说更有意义.
例如,这是POCO/DTO在我的架构中的样子.
// Enforces consistency between a POCO and DTO
public interface IExample
{
Int32 Id { get; set; }
String Name { get; set; }
}
// POCO
public class Example : IExample, INotifyPropertyChanged, IValidatableObject
{
private int id;
private string name;
public Int32 Id {
get { return this.id; }
set {
this.id = value;
OnPropertyChanged("Id");
}
}
public String Name {
get { return …Run Code Online (Sandbox Code Playgroud) 我在我的WebAPi控制器中使用异步方法:
public async Task<HttpResponseMessage> SampleMethod(int subscriptionNumber, DateTime departureDate)
{
// [...]
}
Run Code Online (Sandbox Code Playgroud)
如何配置请求超时?该操作可能需要几分钟,我必须确保请求不会超时.
在MVC中有一个名为的属性[AsyncTimeout].WebApi中是否存在等价物?可以全局配置吗?
我有一个C++对象,它创建一个线程来从阻塞的UDP套接字读取:
mRunning.store(true);
while (mRunning.load(boost::memory_order_consume)) {
...
int size = recvfrom(mSocket, buf, kTextBufSize , 0,
(struct sockaddr *) &packet->mReplyAddr.mSockAddr, (socklen_t*)&packet->mReplyAddr.mSockAddrLen);
if (size > 0) {
//do stuff
}
}
return 0;
Run Code Online (Sandbox Code Playgroud)
(mRunning是一个boost :: atomic)从另一个线程调用该对象的析构函数并执行此操作:
mRunning.store(false);
#ifdef WIN32
if (mSocket != -1) closesocket(mSocket);
#else
if (mSocket != -1) close(mSocket);
#endif
pthread_join(mThread, NULL);
Run Code Online (Sandbox Code Playgroud)
这似乎有效,但我的一位同事建议,如果recv在阅读过程中被中断,可能会出现问题.这个线程安全吗?关闭阻塞UDP套接字的正确方法是什么?(需要跨平台的OSX/Linux/Windows)
我已经看了一会儿玩RavenDb并开始关注MultiTenancy.Ayendes的多租户样本如下:
using(var store = new DocumentStore
{
Url = "http://localhost:8080"
}.Initialize())
{
store.DatabaseCommands.EnsureDatabaseExists("Brisbane");
store.DatabaseCommands.EnsureDatabaseExists("Melbroune");
store.DatabaseCommands.EnsureDatabaseExists("Sidney");
using (var documentSession = store.OpenSession("Brisbane"))
{
documentSession.Store(new { Name = "Ayende"});
documentSession.SaveChanges();
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道每个数据库是如何存储的,因此问题是:这适用于拥有大量租户的大型应用程序吗?
我有这个错误:
执行处理程序'System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerAsyncWrapper'的子请求时出错.
内部异常:
不允许子操作执行重定向操作.
知道为什么会这样吗?
顺便说一句,错误发生在这一行:
@Html.Action("Menu", "Navigation")
Run Code Online (Sandbox Code Playgroud)
导航控制器中的菜单操作如下所示:
public ActionResult Menu()
{
return PartialView();
}
Run Code Online (Sandbox Code Playgroud) 当我尝试关注DDD时,我是否应该经常使用这些服务?
或者我可以直接使用存储库来获取域对象吗?